Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Heroku 使用S3进行Django CMS图片插件存储_Heroku_Amazon S3_Boto_Django Cms_Django Storage - Fatal编程技术网

Heroku 使用S3进行Django CMS图片插件存储

Heroku 使用S3进行Django CMS图片插件存储,heroku,amazon-s3,boto,django-cms,django-storage,Heroku,Amazon S3,Boto,Django Cms,Django Storage,我正在尝试将Django CMS项目部署到Heroku。媒体将通过Django存储和Boto从S3提供。目前唯一的媒体包括Django CMS图片插件(使用标准ImageField)和Aldryn博客帖子(使用FilerImageField和easy_缩略图) 通过Django Filer向博客帖子添加图像效果很好,但在创建Django CMS图片插件时添加图像失败,错误为500: POST/en/admin/cms/page/edit plugin/3/HTTP/1.1 主机:192.168.

我正在尝试将Django CMS项目部署到Heroku。媒体将通过Django存储和Boto从S3提供。目前唯一的媒体包括Django CMS图片插件(使用标准ImageField)和Aldryn博客帖子(使用FilerImageField和easy_缩略图)

通过Django Filer向博客帖子添加图像效果很好,但在创建Django CMS图片插件时添加图像失败,错误为500:

POST/en/admin/cms/page/edit plugin/3/HTTP/1.1
主机:192.168.1.104:8000
连接:保持活动状态
内容长度:72567
缓存控制:最大年龄=0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,/;q=0.8
来源:
http://192.168.1.104:8000

用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/35.0.1916.153 Safari/537.36
内容类型:多部分/表单数据;边界=----WebKitFormBoundaryegTMPxZL74Wiukrg
参考者:
http://192.168.1.104:8000/en/admin/cms/page/edit-插件/3/

接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
Cookie:django_language=en;sessionid=wj7ayeia7rwggpxecatspe7lw5i12345;csrftoken=Pf342snoku6cdoRD6b9FCtxfqVQ12345

HTTP/1.0 500内部服务器错误
日期:2014年7月13日星期日07:06:46 GMT
服务器:WSGIServer/0.1 Python/2.7.3
内容语言:en
过期时间:2014年7月13日星期日07:06:46 GMT
变化:饼干
最后修改日期:2014年7月13日星期日07:06:46 GMT
缓存控制:最大年龄=0
X-Frame-Options:SAMEORIGIN
内容类型:text/html

图像成功上传到S3,插件在CMS中创建,但显示为
。以下是我认为相关的设置:

'''
We use S3 as our media backend on Heroku, so set that up
'''
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'me'
AWS_SECRET_ACCESS_KEY = 'hunter2'
AWS_STORAGE_BUCKET_NAME = 'bucket'

'''
Adjust media URL to point directly to S3
'''
MEDIA_URL = 'http://bucket.s3.amazonaws.com/'

'''
Adjust thumbnail storage
'''
THUMBNAIL_DEFAULT_STORAGE = DEFAULT_FILE_STORAGE
此外,我还可以通过编程方式创建图片插件,效果良好:

df = File(f)
p = Picture(language=u'en', plugin_type=u'PicturePlugin', level=0, lft=1, rght=2, tree_id=3, placeholder=ph)
p.image.save(name='test.png', content=df)
p.save()
任何关于我做错了什么的想法都会非常感激,我被卡住了

编辑1:感谢您的回复,mkoistinen,我正试图为您提供更多信息,但老实说,我对这些片段如何组合在一起感到有点困惑,所以我只是截图

插件创建表单:

表单在一瞬间处于错误状态(我尝试单击“共享此回溯…”按钮但未成功):

图像存储到S3并创建了CMSPlugin(但不是图片):

响应为空,并且似乎没有任何JavaScript错误:

编辑2:此替换插件工作正常,不知道如何:

# djangocms_pic/cms_plugins.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool

from models import Pic

class PicPlugin(CMSPluginBase):
    model = Pic
    name = 'Pic'
    render_template = 'pic_plugin.html'

plugin_pool.register_plugin(PicPlugin)

# djangocms_pic/models.py

from django.db import models

from cms.models import CMSPlugin

class Pic(CMSPlugin):
    image = models.ImageField(upload_to = CMSPlugin.get_media_path)

# djangocms_pic/templates/pic_plugin.html

<img src="{{ instance.image.url }}" />
#djangocms_pic/cms_plugins.py
从cms.plugin\u base导入CMSPluginBase
从cms.plugin\u池导入plugin\u池
从模型导入图片
类PicPlugin(CMSPluginBase):
型号=Pic
名称='Pic'
render_template='pic_plugin.html'
插件池。注册插件(PicPlugin)
#djangocms_pic/models.py
从django.db导入模型
从cms.models导入CMSPlugin
Pic类(CMSPlugin):
image=models.ImageField(上传到=CMSPlugin.get\u媒体路径)
#djangocms_pic/templates/pic_plugin.html

您能获得堆栈跟踪吗?下面是我要做的:在Chrome中,在Chrome开发工具窗口的网络选项卡打开时执行该操作,然后,一旦得到错误,您应该会找到产生错误的AJAX请求。单击该请求,然后单击“响应”将显示完整的堆栈跟踪。如果可以的话,把这篇文章发到IRC频道(通过Gist等),这样我们就可以追踪到这篇文章。我还可以收集更多的信息来帮助阐明这个问题吗?好的,你正在混淆的url。这是什么?另一张来自S3的图片(来自我通过编程创建的图片插件),我只是不太愿意说出我的bucket名称。我也有同样的问题。您可能会看到这是否为您解决了问题。