我们设置了wagtail 2.0.1以与AWS S3一起使用媒体文件,这对于图像很有效(上传发送到S3,/images
路径显示图像中的所有图像经理),它似乎不适用于文件。
我们使用的设置:
# Storage for user generated files
if USE_S3:
# Use S3 to store user files if the corresponding environment var is set
DEFAULT_FILE_STORAGE = 'filebrowser_s3.storage.S3MediaStorage'
AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = env('AWS_S3_CUSTOM_DOMAIN')
AWS_LOCATION = env('AWS_LOCATION')
MEDIA_URL = 'https://' + AWS_S3_CUSTOM_DOMAIN + '/'
MEDIA_ROOT = ''
FILEBROWSER_DIRECTORY = env('FILEBROWSER_DIRECTORY')
else:
# Otherwise use the default filesystem storage
MEDIA_ROOT = root('media/')
MEDIA_URL = '/media/'
(请注意filebrowser_s3
是一个extends the S3Boto3Storage class from the s3boto3
library)
我们可以上传文档,这些文档最终在S3上的正确位置,数据库获得file
记录,该记录指向附加到S3基本位置的正确路径,但/ documents路径显示"无":
搜索"工作"因为它找到了结果,说有X个结果,显示了结果所在的类别,但之后没有显示其他内容:
文档应用程序是否使用了除媒体root / url常量之外我们需要设置的特殊wagtail常量,以便wagtail可以显示带有相关edit / etc UI的文档列表?
答案 0 :(得分:1)
原来这是由加载文档应用程序引起的,但没有加载相应的url模式。在打开所有调试设置的情况下对本地wagtail副本运行生产S3存储桶的副本表明,对于什么应该是wagtail文档路由没有反向规则,这表明我们的urls.py正在抓取文档中的模式应用程序,但实际上没有将这些模式作为主urlpatterns列表的一部分加载。
答案 1 :(得分:0)
文档应用程序是否使用了除媒体root / url常量之外我们需要设置的特殊wagtail常量,以便wagtail可以显示带有相关edit / etc UI的文档列表?
不,它没有。你可以试试吗
pip install django-storages
和
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
?这是Django / Wagtail和S3的标准方法。
如果可行,则filebrowser_s3
可能存在问题。
另见