Python 在settings.py中设置默认\u文件\u存储会中断应用程序
问题:Python 在settings.py中设置默认\u文件\u存储会中断应用程序,python,django,amazon-s3,photologue,Python,Django,Amazon S3,Photologue,问题: Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1103e3ea0> Traceback (most recent call last): File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1103e3ea0>
Traceback (most recent call last):
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/env/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run
autoreload.raise_last_exception()
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
raise _exception[1]
File "/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 327, in execute
autoreload.check_errors(django.setup)()
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/env/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/env/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/env/lib/python3.6/site-packages/photologue/models.py", line 76, in <module>
"Signature: 8a477f597d28d172789f06886806bc55"))
File "/env/lib/python3.6/site-packages/django/core/files/storage.py", line 49, in save
return self._save(name, content)
File "/env/lib/python3.6/site-packages/storages/backends/s3boto3.py", line 452, in _save
self._save_content(obj, content, parameters=parameters)
File "/env/lib/python3.6/site-packages/storages/backends/s3boto3.py", line 467, in _save_content
obj.upload_fileobj(content, ExtraArgs=put_parameters)
File "/env/lib/python3.6/site-packages/boto3/s3/inject.py", line 513, in object_upload_fileobj
ExtraArgs=ExtraArgs, Callback=Callback, Config=Config)
File "/env/lib/python3.6/site-packages/boto3/s3/inject.py", line 431, in upload_fileobj
return future.result()
File "/env/lib/python3.6/site-packages/s3transfer/futures.py", line 73, in result
return self._coordinator.result()
File "/env/lib/python3.6/site-packages/s3transfer/futures.py", line 233, in result
raise self._exception
File "/env/lib/python3.6/site-packages/s3transfer/tasks.py", line 126, in __call__
return self._execute_main(kwargs)
File "/env/lib/python3.6/site-packages/s3transfer/tasks.py", line 150, in _execute_main
return_value = self._main(**kwargs)
File "/env/lib/python3.6/site-packages/s3transfer/upload.py", line 692, in _main
client.put_object(Bucket=bucket, Key=key, Body=body, **extra_args)
File "/env/lib/python3.6/site-packages/botocore/client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/env/lib/python3.6/site-packages/botocore/client.py", line 593, in _make_api_call
request_signer=self._request_signer, context=request_context)
File "/env/lib/python3.6/site-packages/botocore/hooks.py", line 242, in emit_until_response
responses = self._emit(event_name, kwargs, stop_on_response=True)
File "/env/lib/python3.6/site-packages/botocore/hooks.py", line 210, in _emit
response = handler(**kwargs)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 210, in conditionally_calculate_md5
calculate_md5(params, **kwargs)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 188, in calculate_md5
binary_md5 = _calculate_md5_from_file(body)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 202, in _calculate_md5_from_file
md5.update(chunk)
TypeError: Unicode-objects must be encoded before hashing
boto3==1.6.4
botocore==1.9.4
Django==2.0.3
django-photologue==3.8.1
django-sortedm2m==1.5.0
django-storages==1.6.5
docutils==0.14
ExifRead==2.1.2
jmespath==0.9.3
Pillow==5.0.0
psycopg2==2.7.4
python-dateutil==2.6.1
python-decouple==3.1
pytz==2018.3
s3transfer==0.1.13
six==1.11.0
在settings.py中启用DEFAULT\u FILE\u存储
,将创建TypeError:
在散列之前必须对Unicode对象进行编码
(下面的日志)
创建类型错误DEFAULT\u FILE\u STORAGE=''
创建类型错误DEFAULT\u FILE\u STORAGE='app.aws.utils.MediaRoots3Boto3存储'
- 我正在尝试为静态和媒体文件设置S3存储李>
- 我特别尝试在AWS bucket的/media/文件夹中启用存储
- 如果我在settings.py中注释掉
#DEFAULT_FILE_STORAGE='app.aws.utils.MediaRootS3Boto3Storage'
- 我可以运行
我的所有静态文件都已成功上载到aws上的/static/文件夹python manage.py
- 静态资产正在运行
- 媒体资产在本地正常工作
设置为任何值都会创建此错误消息DEFAULT\u FILE\u STORAGE
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1103e3ea0>
Traceback (most recent call last):
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/env/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run
autoreload.raise_last_exception()
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
raise _exception[1]
File "/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 327, in execute
autoreload.check_errors(django.setup)()
File "/env/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/env/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate
app_config.import_models()
File "/env/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/env/lib/python3.6/site-packages/photologue/models.py", line 76, in <module>
"Signature: 8a477f597d28d172789f06886806bc55"))
File "/env/lib/python3.6/site-packages/django/core/files/storage.py", line 49, in save
return self._save(name, content)
File "/env/lib/python3.6/site-packages/storages/backends/s3boto3.py", line 452, in _save
self._save_content(obj, content, parameters=parameters)
File "/env/lib/python3.6/site-packages/storages/backends/s3boto3.py", line 467, in _save_content
obj.upload_fileobj(content, ExtraArgs=put_parameters)
File "/env/lib/python3.6/site-packages/boto3/s3/inject.py", line 513, in object_upload_fileobj
ExtraArgs=ExtraArgs, Callback=Callback, Config=Config)
File "/env/lib/python3.6/site-packages/boto3/s3/inject.py", line 431, in upload_fileobj
return future.result()
File "/env/lib/python3.6/site-packages/s3transfer/futures.py", line 73, in result
return self._coordinator.result()
File "/env/lib/python3.6/site-packages/s3transfer/futures.py", line 233, in result
raise self._exception
File "/env/lib/python3.6/site-packages/s3transfer/tasks.py", line 126, in __call__
return self._execute_main(kwargs)
File "/env/lib/python3.6/site-packages/s3transfer/tasks.py", line 150, in _execute_main
return_value = self._main(**kwargs)
File "/env/lib/python3.6/site-packages/s3transfer/upload.py", line 692, in _main
client.put_object(Bucket=bucket, Key=key, Body=body, **extra_args)
File "/env/lib/python3.6/site-packages/botocore/client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/env/lib/python3.6/site-packages/botocore/client.py", line 593, in _make_api_call
request_signer=self._request_signer, context=request_context)
File "/env/lib/python3.6/site-packages/botocore/hooks.py", line 242, in emit_until_response
responses = self._emit(event_name, kwargs, stop_on_response=True)
File "/env/lib/python3.6/site-packages/botocore/hooks.py", line 210, in _emit
response = handler(**kwargs)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 210, in conditionally_calculate_md5
calculate_md5(params, **kwargs)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 188, in calculate_md5
binary_md5 = _calculate_md5_from_file(body)
File "/env/lib/python3.6/site-packages/botocore/handlers.py", line 202, in _calculate_md5_from_file
md5.update(chunk)
TypeError: Unicode-objects must be encoded before hashing
boto3==1.6.4
botocore==1.9.4
Django==2.0.3
django-photologue==3.8.1
django-sortedm2m==1.5.0
django-storages==1.6.5
docutils==0.14
ExifRead==2.1.2
jmespath==0.9.3
Pillow==5.0.0
psycopg2==2.7.4
python-dateutil==2.6.1
python-decouple==3.1
pytz==2018.3
s3transfer==0.1.13
six==1.11.0
版本号
- Python 3.6.4
- Django 2.0.3
提前感谢您的帮助 好的,我看到第二篇文章建议对默认的文件存储使用该设置,但我觉得这有点不寻常 引用时,您将使用:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
为您的媒体根
编辑:
使用S3时,它只支持Python2.7和旧库。好的,所以我看到第二篇文章建议将该设置用于默认的文件存储,但对我来说它看起来有点不寻常 引用时,您将使用:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
为您的媒体根
编辑:
与S3一起使用时,它只支持Python 2.7和旧库。感谢您的参与。我尝试了你的建议,但没有缓解问题。基本上,如果我为默认文件存储分配了任何值,我就会得到这个错误。例如:DEFAULT_FILE_STORAGE='storages.backends.s3boto3.S3Boto3Storage'或DEFAULT_FILE_STORAGE=''老实说,我一直在解决这个问题。我还能提供什么其他信息来帮助你呢?啊,我甚至看不到你的评论!我只有这个在我的通知抽屉里。“对不起,我没有代表在评论中询问,但是你能澄清一下你使用的是lib还是yo…”你好,尼克,我刚刚看了github.com/jdriscoll/django-photologue,看起来如果你想在S3中使用它,你需要使用Python 2.7和旧的boto库。移动到Python2.7&boto或更改照片处理库不是一件小事,但是,您可以尝试代替photologue吗?您是正确的。我希望我能和Boto3合作,但我想不行。删除photologue修复了此问题。使用ImageKit启动并运行。谢谢谢谢你的来电。我尝试了你的建议,但没有缓解问题。基本上,如果我为默认文件存储分配了任何值,我就会得到这个错误。例如:DEFAULT_FILE_STORAGE='storages.backends.s3boto3.S3Boto3Storage'或DEFAULT_FILE_STORAGE=''老实说,我一直在解决这个问题。我还能提供什么其他信息来帮助你呢?啊,我甚至看不到你的评论!我只有这个在我的通知抽屉里。“对不起,我没有代表在评论中询问,但是你能澄清一下你使用的是lib还是yo…”你好,尼克,我刚刚看了github.com/jdriscoll/django-photologue,看起来如果你想在S3中使用它,你需要使用Python 2.7和旧的boto库。移动到Python2.7&boto或更改照片处理库不是一件小事,但是,您可以尝试代替photologue吗?您是正确的。我希望我能和Boto3合作,但我想不行。删除photologue修复了此问题。使用ImageKit启动并运行。谢谢