2015-05-27 15 views
6

Sto utilizzando django-resto per caricare i miei file multimediali sul server remoto. Tuttavia, quando ho provato a caricare, mi dà django_resto.storage: Failed on create.Errore: client destinato a inviare un corpo troppo grande

e log generato al di sotto dei messaggi,

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" 

Qualcuno può spiegare perché sto ottenendo un errore del genere?

Impostazioni per Media Server,

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

configurazione Nginx,

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

Stai utilizzando nginx o Apache? –

risposta

17

Questo problema sarà causato da nginxs bassa di default client_max_body_size valore (1 MB).

Sarà necessario impostare il client_max_body_size <value> a qualcosa di superiore in uno dei seguenti blocchi di contesto:

  • http
  • posizione
  • server di

Il codice sarà qualcosa di simile :

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

Personalmente metterei il client_max_body_size su un blocco location. Ciò significa che le nuove dimensioni massime del tuo corpo non verranno impostate globalmente e impostate invece per una particolare posizione secondaria del tuo sito web.

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 
    } 
} 

nota: Ricorda è necessario ricaricare il file di configurazione prima che le modifiche abbiano effetto.

nota anche: Si ottiene solo il valore client_max_body_size più un po '. Arresta le persone potenzialmente inviando file enormemente enormi nel tentativo di paralizzare il server.

+0

Grazie Matt, ma questo non era un mio problema. Ho già inserito 24 m come dimensione del corpo. Il mio problema è risolto da, 'server { ascolta 192.168.0.10; posizione/{ root/var/www/media; dav_methods PUT DELETE; create_full_put_path on; dav_access utente: rw gruppo: r tutti: r; consentire 192.168.0.1/24; nega tutto; }} '
a
' server { ascoltare 192.168.0.10; posizione/{ root/var/www/media; dav_methods PUT DELETE; create_full_put_path on; gruppo dav_access: rw all: r; consentire 192.168.0.1/24; nega tutto; } } ' – Ahsan

+1

Posso suggerire di aggiungere questo alla domanda come una modifica. –

Problemi correlati