Django+;博托+;Python 3
如何在EC2 Amazon Linux上使用Python3将Django上传的文件存储在S3上? 如果不能,如果使用ELB,如何在2个EC2实例之间共享上载的文件 我尝试使用django-storages-py3+boto#py3kport,但它不起作用,当我尝试上载文件时,我遇到一个异常:Django+;博托+;Python 3,python,django,amazon-web-services,amazon-s3,boto,Python,Django,Amazon Web Services,Amazon S3,Boto,如何在EC2 Amazon Linux上使用Python3将Django上传的文件存储在S3上? 如果不能,如果使用ELB,如何在2个EC2实例之间共享上载的文件 我尝试使用django-storages-py3+boto#py3kport,但它不起作用,当我尝试上载文件时,我遇到一个异常:string预期字节给定 更新: 这就是我使用django-storages-py3+boto#py3kport的方式 fd-S3BOTOSTRAGEFILE:上传STG/a6d2532d-34c9-4793
string预期字节给定
更新:
这就是我使用django-storages-py3+boto#py3kport的方式
fd-S3BOTOSTRAGEFILE:上传STG/a6d2532d-34c9-4793-9d43-e9a3e475fc6f.png
文件-InMemoryUploadedFile:1.png(image/png)
回溯
Environment:
Request Method: POST
Request URL: http://---/items/Tpp/create/
Django Version: 1.6.1
Python Version: 3.3.3
Installed Applications:
('django.contrib.admin',
'haystack',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'modeltranslation',
'south',
'core',
'storages',
'appl')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tpp.SiteUrlMiddleWare.SiteUrlMiddleWare')
Traceback:
File "/usr/local/bin/test/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/var/www/html/tpp/tppcenter/views.py" in get_item_form
95. com = form.save(request.user)
File "/var/www/html/tpp/tppcenter/forms.py" in save
212. self._save_file(self.fields[title].initial, title, path_to_images)
File "/var/www/html/tpp/tppcenter/forms.py" in _save_file
239. fd.write(chunk)
File "/usr/local/bin/test/lib/python3.3/site-packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py" in write
161. return super(S3BotoStorageFile, self).write(*args, **kwargs)
Exception Type: TypeError at /items/Tpp/create/
Exception Value: string argument expected, got 'bytes'
使用Django管理员上传:
Environment:
Request Method: POST
Request URL: http://----/admin/core/user/1/
Django Version: 1.6.1
Python Version: 3.3.3
Installed Applications:
('django.contrib.admin',
'haystack',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'modeltranslation',
'south',
'core',
'storages',
'appl')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tpp.SiteUrlMiddleWare.SiteUrlMiddleWare')
Traceback:
File "/usr/local/bin/test/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in wrapper
432. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
52. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/sites.py" in inner
198. return view(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapper
29. return bound_func(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in bound_func
25. return func(self, *args2, **kwargs2)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/transaction.py" in inner
339. return func(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in change_view
1230. self.save_model(request, new_object, form, True)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in save_model
860. obj.save()
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in save
545. force_update=force_update, update_fields=update_fields)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in save_base
573. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in _save_table
632. for f in non_pks]
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in <listcomp>
632. for f in non_pks]
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/fields/files.py" in pre_save
252. file.save(file.name, file, save=False)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/fields/files.py" in save
86. self.name = self.storage.save(name, content)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/core/files/storage.py" in save
49. name = self._save(name, content)
File "/usr/local/bin/test/lib/python3.3/site-packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py" in _save
392. self._save_content(key, content, headers=headers)
File "/usr/local/bin/test/lib/python3.3/site-packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py" in _save_content
403. rewind=True, **kwargs)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in set_contents_from_file
1241. chunked_transfer=chunked_transfer, size=size)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in send_file
726. chunked_transfer=chunked_transfer, size=size)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in _send_file_internal
893. if self.base64md5:
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in _get_base64md5
177. return binascii.b2a_base64(self.local_hashes['md5']).rstrip('\n')
Exception Type: TypeError at /admin/core/user/1/
Exception Value: Type str doesn't support the buffer API
环境:
申请方式:邮寄
请求URL:http://----/admin/core/user/1/
Django版本:1.6.1
Python版本:3.3.3
已安装的应用程序:
(“django.contrib.admin”,
“干草堆”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“django.contrib.sites”,
“模型翻译”,
“南方”,
“核心”,
"仓库",,
"appl")
已安装的中间件:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xFrameOptions中间件',
'tpp.SiteUrlMiddleWare.SiteUrlMiddleWare')
回溯:
get_响应中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/core/handlers/base.py”
114响应=包装的回调(请求,*回调参数,**回调参数)
包装器中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/contrib/admin/options.py”
432返回self.admin\u site.admin\u视图(视图)(*args,**kwargs)
视图中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/utils/decorators.py”
99响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/bin/test/lib/python3.3/site packages/django/views/decorators/cache.py”
52响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/bin/test/lib/python3.3/site packages/django/contrib/admin/sites.py”
198返回视图(请求、*args、**kwargs)
包装器中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/utils/decorators.py”
29返回边界函数(*args,**kwargs)
视图中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/utils/decorators.py”
99响应=查看功能(请求,*args,**kwargs)
绑定函数中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/utils/decorators.py”
25返回函数(self,*args2,**kwargs2)
文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/transaction.py”
339返回函数(*args,**kwargs)
更改视图中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/contrib/admin/options.py”
1230self.save_模型(请求、新_对象、表单、True)
save_模型中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/contrib/admin/options.py”
860obj.save()
保存中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/base.py”
545强制更新=强制更新,更新字段=更新字段)
save_base中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/base.py”
573更新=自我。保存表格(原始、cls、强制插入、强制更新、使用、更新字段)
保存表格中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/base.py”
632非大学pks中的f]
文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/base.py”
632非大学pks中的f]
pre_save中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/fields/files.py”
252file.save(file.name,file,save=False)
保存中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/db/models/fields/files.py”
86self.name=self.storage.save(名称、内容)
保存中的文件“/usr/local/bin/test/lib/python3.3/site packages/django/core/files/storage.py”
49name=self.\u保存(名称、内容)
保存中的文件“/usr/local/bin/test/lib/python3.3/site packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py”
392self.\u保存内容(键、内容、标题=标题)
保存内容中的文件“/usr/local/bin/test/lib/python3.3/site packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py”
403倒带=真,**kwargs)
文件“/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py”,位于集合内容中
1241分块传输=分块传输,大小=大小)
send_文件中的文件“/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py”
726分块传输=分块传输,大小=大小)
文件“/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py”
893如果self.base64md5:
文件“/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py”
177返回binascii.b2a_base64(self.local_散列['md5']).rstrip('\n')
异常类型:TypeError位于/admin/core/user/1/
异常值:类型str不支持缓冲区API
如果有人收到此错误“异常值:类型str不支持缓冲区API”
使用django-storages-py3+boto#py3kport
选中此项:
tinys3-针对Python的快速、最少的S3上传
详细介绍django-storages-py3生成的错误。贴一个堆栈跟踪。贴,你能帮我一下吗这真是太棒了!我也推荐它
Environment:
Request Method: POST
Request URL: http://----/admin/core/user/1/
Django Version: 1.6.1
Python Version: 3.3.3
Installed Applications:
('django.contrib.admin',
'haystack',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'modeltranslation',
'south',
'core',
'storages',
'appl')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tpp.SiteUrlMiddleWare.SiteUrlMiddleWare')
Traceback:
File "/usr/local/bin/test/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in wrapper
432. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
52. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/sites.py" in inner
198. return view(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapper
29. return bound_func(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
99. response = view_func(request, *args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/utils/decorators.py" in bound_func
25. return func(self, *args2, **kwargs2)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/transaction.py" in inner
339. return func(*args, **kwargs)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in change_view
1230. self.save_model(request, new_object, form, True)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/contrib/admin/options.py" in save_model
860. obj.save()
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in save
545. force_update=force_update, update_fields=update_fields)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in save_base
573. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in _save_table
632. for f in non_pks]
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/base.py" in <listcomp>
632. for f in non_pks]
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/fields/files.py" in pre_save
252. file.save(file.name, file, save=False)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/db/models/fields/files.py" in save
86. self.name = self.storage.save(name, content)
File "/usr/local/bin/test/lib/python3.3/site-packages/django/core/files/storage.py" in save
49. name = self._save(name, content)
File "/usr/local/bin/test/lib/python3.3/site-packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py" in _save
392. self._save_content(key, content, headers=headers)
File "/usr/local/bin/test/lib/python3.3/site-packages/django_storages-1.1.8-py3.3.egg/storages/backends/s3boto.py" in _save_content
403. rewind=True, **kwargs)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in set_contents_from_file
1241. chunked_transfer=chunked_transfer, size=size)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in send_file
726. chunked_transfer=chunked_transfer, size=size)
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in _send_file_internal
893. if self.base64md5:
File "/usr/local/bin/test/src/boto/build/lib/boto/s3/key.py" in _get_base64md5
177. return binascii.b2a_base64(self.local_hashes['md5']).rstrip('\n')
Exception Type: TypeError at /admin/core/user/1/
Exception Value: Type str doesn't support the buffer API