Django+AWS:文件未同步到S3

2024-10-01 07:12:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我继承了一个使用Django Suit实现的CMS系统。其中一个表单应该将文件上载到S3,但它没有发生(文件上载到webserver-EC2,但没有上载到S3)

到目前为止,我的决定是:

  1. EC2实例具有对S3的完全访问权限(通过角色)
  2. 在Django的配置文件中设置的用户可以完全访问S3
  3. 有一个CloudFront配置为指向bucket,当通过URL访问文件时,它就可以工作。配置正在那里工作
  4. 以前的开发人员使用以下方法处理文件上载:

    默认\u文件\u存储='fallback\u STORAGE.STORAGE.FallbackStorage' 后备存储=( “django.core.files.storage.FileSystemStorage”, 'main.custom_storage.MediaStorage' )

我查看了这3个类,看看是否缺少配置,但一切看起来都很好

  1. 我不熟悉这种在web服务器和S3之间同步文件的方式,所以我可能遗漏了一些非常明显的东西。有没有像cron jon那样需要在后台运行

  2. 我发现一篇博客文章解释了如何使用Django使用FallbackStorage将文件上传到S3。该教程使用docker。在这种情况下,根本不使用docker

我在这一点上迷路了。有数千个类分布在数十个python库中。对代码进行详尽的分析将花费很长时间


Tags: 文件django实例docker权限表单s3cms
1条回答
网友
1楼 · 发布于 2024-10-01 07:12:06

您可能应该查看FallbackStorage类,通常对于文件上载到S3,这将是S3BotoStorage中的存储类,具有适当的AWS_STORAGE_BUCKETAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

stored = models.FileField(storage=S3BotoStorage(bucket=AWS_BUCKET), upload_to='blog-uploads')

相关问题 更多 >