【问题标题】:Django static files uploaded to folder in Amazon S3 that can't be foundDjango 静态文件上传到无法找到的 Amazon S3 中的文件夹
【发布时间】:2021-07-20 22:55:43
【问题描述】:

我正在尝试设置 Django,以便将所有静态文件上传到 s3,但无论出于何种原因,它都无法正常工作。这是settings.py中的相关部分:

AWS_STORAGE_BUCKET_NAME = "bucket_name"
AWS_ACCESS_KEY_ID = os.environ.get("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.environ.get("AWS_SECRET_ACCESS_KEY")
AWS_S3_FILE_OVERWRITE = False
AWS_S3_REGION_NAME = "us-east-2"
AWS_S3_CUSTOM_DOMAIN = (
    f"{AWS_STORAGE_BUCKET_NAME}.s3.{AWS_S3_REGION_NAME}.amazonaws.com"
)
AWS_S3_ENDPOINT_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}"
AWS_LOCATION = "static"

STATIC_URL = f"{AWS_S3_ENDPOINT_URL}/{AWS_LOCATION}/"
STATICFILES_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"

假设我的bucket叫做bucket_name,会发生这样的事情:

如何让 django 资产使用这个新地址,或者更改 aws 上的地址以使其与 django 对齐?

我已经做了一些调试。

  • 似乎如果我在所有这些行之后重新定义AWS_STORAGE_BUCKET_NAME,所有改变的只是文件夹名称将从bucket_name 更改为其他任何名称。除了我不想重命名这个文件夹,我想要么完全删除它,要么让 django 理解这个文件夹。
  • 更改STATICFILES_STORAGE 似乎没有任何作用,除非将其删除,否则会导致错误
  • 更改AWS_LOCATION 只是将文件夹更改为bucket_name//static,它对基本文件夹没有影响。这将使资产使用 /static,但 bucket_name 仍然不存在。
  • 暂时删除我的存储桶策略不会解决任何问题。

我想我的问题与这里的问题相似或相同:why static files and images are not working on my django s3 bucket project?。但它没有得到解决方案。

【问题讨论】:

    标签: python django amazon-web-services amazon-s3


    【解决方案1】:

    我的问题是我同时使用了AWS_S3_CUSTOM_DOMAINAWS_S3_ENDPOINT_URL。我只能选择其中之一。

    当指定AWS_S3_CUSTOM_DOMAIN 而不是AWS_S3_ENDPOINT_URL 时,S3 将包含一个根据AWS_LOCATION 的文件夹,所以在我的情况下,静态文件存储在https://bucket_name.s3.us-east-2.amazonaws.com/static 中。 Django 将访问此 URL 并找到资产。

    当指定AWS_S3_ENDPOINT_URL 而不是AWS_S3_CUSTOM_DOMAIN 时,S3 将包含一个带有bucket 名称的文件夹,其中包含一个根据AWS_LOCATION 的文件夹。所以我可以使用https://bucket_name.s3.us-east-2.amazonaws.com/bucket_name/static 访问它。 Django 将再次能够按预期访问此 URL。

    当我同时拥有两者时,问题就出现了。 AWS_S3_CUSTOM_DOMAIN 的域将在 django 上使用,AWS_S3_ENDPOINT_URL 将在 S3 上使用,导致我遇到的断开连接。

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 2020-02-23
      相关资源
      最近更新 更多