python - Django + AWS : files not syncing to S3

标签 python django file amazon-s3 file-upload

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

到目前为止我确定的是:

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

    DEFAULT_FILE_STORAGE = 'fallback_storage.storage.FallbackStorage' FALLBACK_STORAGES = ( 'django.core.files.storage.FileSystemStorage', 'main.custom_storages.MediaStorage' )

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

  • 我不熟悉这种在 Web 服务器和 S3 之间同步文件的方式,因此我可能会遗漏一些非常明显的东西。是否有类似 cron jon 需要在后台运行?

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

  • 此时我迷失了方向。有数千个类分布在数十个 Python 库中。对代码进行详尽的分析将花费很长时间。

    最佳答案

    您可能应该查看 FallbackStorage 类,通常对于将文件上传到 S3,这将是 S3BotoStorage 的存储类,具有正确的 AWS_STORAGE_BUCKETAWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY 设置。

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

    关于python - Django + AWS : files not syncing to S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59742658/

    相关文章:

    python - 部署到移动设备或台式计算机之间的 aws elastic beanstalk 的 django 网站有区别吗?

    python - 是否可以在 Windows 上部署 Python AWS Lambda?

    python - 引用继承的类函数

    python - 获取Python中bash命令的所有输出

    Java-从文件读取并通过数据转换初始化对象

    c - fgets 不读取行的开头

    android - 如何在Android/iOS上通过不同的线程同时读写一个文件?

    python - 使用 python 获取 instagram 关注者列表

    python - Django REST 框架 : creating hierarchical objects using URL arguments

    javascript - 单击确认添加复选框长度