Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django';s collectstatic与boto S3抛出;错误32:管道断裂“;过了一会儿_Python_Django_Amazon S3_Boto_Collectstatic - Fatal编程技术网

Python 使用Django';s collectstatic与boto S3抛出;错误32:管道断裂“;过了一会儿

Python 使用Django';s collectstatic与boto S3抛出;错误32:管道断裂“;过了一会儿,python,django,amazon-s3,boto,collectstatic,Python,Django,Amazon S3,Boto,Collectstatic,我使用boto和S3来存储Django站点的静态文件。当使用collectstatic命令时,它会在停止文件并抛出“错误32:断管”之前完美地上载一大块文件。当我再次尝试运行该命令时,它会跳过已上载的文件,并从停止的文件开始,在没有上传任何新内容的情况下抛出相同的错误之前。关键似乎是指定您的bucket所在的位置。我尝试了许多不同的方法,但最终对我有效的解决方案是为boto创建一个配置文件,如中所述 以下是我在~/.boto创建的配置文件的内容: [Credentials] aws_access

我使用boto和S3来存储Django站点的静态文件。当使用
collectstatic
命令时,它会在停止文件并抛出
“错误32:断管”之前完美地上载一大块文件。
当我再次尝试运行该命令时,它会跳过已上载的文件,并从停止的文件开始,在没有上传任何新内容的情况下抛出相同的错误之前。

关键似乎是指定您的bucket所在的位置。我尝试了许多不同的方法,但最终对我有效的解决方案是为boto创建一个配置文件,如中所述

以下是我在
~/.boto
创建的配置文件的内容:

[Credentials]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[s3]
host=s3-us-west-2.amazonaws.com

BenWurth的答案很好,但如果您和我一样,不想添加配置文件,您也可以使用维护更好的django storages“django storages redux”,只需在settings.py中添加一个额外的env var

pip uninstall django-storages (if you have this installed)
pip install django-storages-redux
AWS_S3_HOST = 'YOUR-AWS-ENDPOINT' #in my case 's3-us-west-2.amazonaws.com'
然后在settings.py中

pip uninstall django-storages (if you have this installed)
pip install django-storages-redux
AWS_S3_HOST = 'YOUR-AWS-ENDPOINT' #in my case 's3-us-west-2.amazonaws.com'

然后一切都会好起来。

老问题,但为了轻松解决这个问题,我只是在我使用的区域中添加了环境变量“AWS\u DEFAULT\u REGION”(例如“ap-southerast-2”)。这项工作在本地(windows)和AWS EB中也存在问题,可能是因为它太大了,就像@Kyle Falconer提到的那样。就我而言,这与地区无关。我通过将文件本地复制到需要的S3存储桶来“解决”它。

对我来说,它总是停在
jquery.js上。
这个问题,到目前为止提供的答案似乎与上面的内容相呼应。@KyleFalconer,对我来说,它也停在jquery.js上!我认为这是因为jquery比其他项大(大约350KB),导致超时。我上传图片时也遇到了这个问题。这也解决了我的错误400:错误请求的问题。具体来说,关于将s3主机添加到
~/.boto