2015-05-27 18 views
6

Medya dosyalarımı uzak sunucuya yüklemek için django-resto kullanıyorum. Ancak yüklemeye çalıştığımda, bana django_resto.storage: Failed on create veriyor.Hata: İstemci çok büyük boyutlu gövde göndermeyi hedefliyor

Ve Log mesajlarının altında üretilen, böyle bir hata alıyorum neden

open() "/var/www/media/media/events/video/clipcanvas_14348_H264_640x360.mp4" 
failed (2: No such file or directory), 
    client: 172.17.42.1, 
    server: , 
    request: "HEAD /media/events/video/clipcanvas.mp4 HTTP/1.1", 
    host: "IP:8081" 

client intended to send too large body: 
    body: 2139606 bytes, 
    client: *.*.*.*, 
    server: , 
    request: "PUT /media/events/video/clipcanvas.mp4 HTTP/1.1", 
    host: "IP:8081" 

Birisi açıklayabilir misiniz? Medya Sunucusu için

Ayarlar, bu sorun nginxs düşük varsayılan client_max_body_size değere (1 MB) neden olacak

server { 
    listen 192.168.0.10; 
    location/{ 
     root /var/www/media; 
     dav_methods PUT DELETE; 
     create_full_put_path on; 
     dav_access user:rw group:r all:r; 
     allow 192.168.0.1/24; deny all; 
    } 
} 
+0

Nginx veya Apache kullanıyor musunuz? –

cevap

17

DEFAULT_FILE_STORAGE = 'django_resto.storage.DistributedStorage' 
RESTO_MEDIA_HOSTS = ['IP:8081'] 

Nginx yapılandırma.

Aşağıdaki bağlam bloklardan birinde yüksek bir şeye client_max_body_size <value> ayarlamak gerekir:

  • http
  • yeri
  • sunucu

kod böyle bir şey olacak :

server { 
    # set the max body size across the site to be 20mb 
    client_max_body_size 20m; 
} 

Şahsen client_max_body_size'u location satırına yerleştiririm. Bu, yeni maksimum beden bedeninizin global olarak ayarlanmayacağı ve bunun yerine web sitenizin belirli bir alt konumuna ayarlanmayacağı anlamına gelir.

server { 
    # site default is 1mb 
    client_max_body_size 1m; 


    location /user/profiles/upload { 
     # profile images should be no more than 2m 
     client_max_body_size 5m; 
     # the rest of your website will still use 1m max body size 
    } 
} 

not: değişikliklerin etkili olması için önce senin yapılandırma dosyasını yeniden yüklemeniz gerekir unutmayın.

Ayrıca not: Sadece client_max_body_size gereksiniminiz olan değeri artı biraz yapın. Sunucunuzu sakatlamak için büyük olasılıkla çok büyük dosyalar gönderen kişileri durdurur.

+0

Teşekkürler Matt, ama bu benim sorunum değildi. Zaten beden olarak 24m koyuyorum. Benim sorunum, 'sunucu { dinle 192.168.0.10; yer/{ kök/var/www/media; dav_methods PUT DELETE; create_full_put_path açık; dav_access kullanıcı: rw grubu: r tümü: r; izin verilen 192.168.0.1/24; tüm reddetme; } } '

için ' sunucu { 192.168.0.10'daki dinlemek; yer/{ kök/var/www/media; dav_methods PUT DELETE; create_full_put_path açık; dav_access grubu: rw all: r; izin verilen 192.168.0.1/24; tüm reddetme; } } ' – Ahsan

+1

Bu soruyu bir düzenleme olarak eklemenizi önerebilir miyim? –