Python Django静态文件上传到AmazonS3中的文件夹,该文件夹可以';找不到
我正在尝试设置Django,以便将所有静态文件上载到s3,但无论出于何种原因,它都不起作用。以下是Python Django静态文件上传到AmazonS3中的文件夹,该文件夹可以';找不到,python,django,amazon-web-services,amazon-s3,Python,Django,Amazon Web Services,Amazon S3,我正在尝试设置Django,以便将所有静态文件上载到s3,但无论出于何种原因,它都不起作用。以下是settings.py中的相关部分: AWS_存储_BUCKET_NAME=“BUCKET_NAME” AWS\u访问\u密钥\u ID=os.environ.get(“AWS\u访问\u密钥\u ID”) AWS\u SECRET\u ACCESS\u KEY=os.environ.get(“AWS\u SECRET\u ACCESS\u KEY”) AWS_S3_文件_覆盖=False AWS\
settings.py
中的相关部分:
AWS_存储_BUCKET_NAME=“BUCKET_NAME”
AWS\u访问\u密钥\u ID=os.environ.get(“AWS\u访问\u密钥\u ID”)
AWS\u SECRET\u ACCESS\u KEY=os.environ.get(“AWS\u SECRET\u ACCESS\u KEY”)
AWS_S3_文件_覆盖=False
AWS\u S3\u地区\u NAME=“us-east-2”
AWS_S3_自定义_域=(
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_URL=f“{AWS_S3_ENDPOINT_URL}/{AWS_LOCATION}/”
STATICFILES\u STORAGE=“storages.backends.s3boto3.s3boto3存储”
假设我的bucket被称为bucket\u name,将会发生以下情况:
- 在我的bucket\u name bucket中,将有一个名为“bucket\u name”的文件夹,其中包含一个静态文件夹,其中包含我的所有文件
- 在服务器上,不会加载任何资产。这是因为他们在寻找url,而url是用英文写的
- 看起来,如果在所有这些行之后重新定义
,所有的变化就是文件夹名称将从BUCKET\u NAME更改为其他名称。除了我不想重命名这个文件夹之外,我想完全删除它或者让django理解这个文件夹AWS\u STORAGE\u BUCKET\u NAME
- 更改
似乎没有任何作用,除非将其删除,否则会导致错误STATICFILES\u存储
- 更改
只需将文件夹更改为bucket\u name//static,对基本文件夹没有影响。这将使资产使用/static,但bucket\u名称仍然不存在AWS\u位置
- 暂时删除我的bucket策略不会解决任何问题
我想我的问题与这里的问题相似或相同:。但它没有找到解决方案。我的问题是,我同时使用了
AWS\u S3\u自定义\u域
和AWS\u S3\u端点\u URL
。我只能选一个
当指定了AWS\u S3\u CUSTOM\u DOMAIN
而不是AWS\u ENDPOINT\u URL
时,S3将包含一个符合AWS\u位置的文件夹,因此在我的情况下,静态文件存储在中。Django将访问此URL并找到资产
如果指定了AWS\u S3\u端点\u URL
,而不是AWS\u S3\u自定义\u域
,则S3将包含一个具有bucket名称的文件夹,其中包含符合AWS\u位置的文件夹
。这样我就可以用。Django将再次能够访问这个URL,正如预期的那样
当我同时拥有两者时,问题就出现了。django上将使用AWS\U S3\U CUSTOM\U domain
的域,S3上将使用AWS\U S3\U ENDPOINT\U URL
,从而导致我的断开连接