Django S3 使用 Boto3 和 OpenTelekomCloud (OTC)
Django S3 using Boto3 with OpenTelekomCloud (OTC)
我按照本教程 https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html 设置了我的 Django 应用程序与 S3 的 S3 集成。我使用 AWS 进行了测试,它运行良好,但对于生产用途,我想使用不同的 S3 提供商:OpenTelekomCloud aka OTC。
使用以下客户端代码,我可以访问 OTC 和 AWS,具体取决于 endpoint_url:
session = boto3.session.Session()
s3_client = session.client(
service_name='s3',
aws_access_key_id='XXXXXXXXXXX',
aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXXXX',
endpoint_url='https://obs.eu-de.otc.t-systems.com',
# region_name='eu-de',
use_ssl=True,
verify=True,
)
print(s3_client.list_buckets())
但是我无法以正确的方式将配置移动到我的 Django 应用程序的 settings.py 文件中用于 OTC,而它在 AWS 上运行良好。
AWS_ACCESS_KEY_ID = 'XXXXXXXXXXXXX'
AWS_SECRET_ACCESS_KEY = 'XXXXXXXXXXXXXXXXXX'
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
AWS_S3_CUSTOM_DOMAIN = 'obs.eu-de.otc.t-systems.com'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
尝试了几种不同的配置,但总是得到以下响应。
An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The AWS Access Key Id you provided does not exist in our records.
为 OTC 配置我的 settings.py 以使其正常工作的正确方法是什么?
替换了这个
AWS_S3_CUSTOM_DOMAIN = 'obs.eu-de.otc.t-systems.com'
由此
AWS_S3_ENDPOINT_URL = 'http://obs.eu-de.otc.t-systems.com'
成功了!
我按照本教程 https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html 设置了我的 Django 应用程序与 S3 的 S3 集成。我使用 AWS 进行了测试,它运行良好,但对于生产用途,我想使用不同的 S3 提供商:OpenTelekomCloud aka OTC。
使用以下客户端代码,我可以访问 OTC 和 AWS,具体取决于 endpoint_url:
session = boto3.session.Session()
s3_client = session.client(
service_name='s3',
aws_access_key_id='XXXXXXXXXXX',
aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXXXX',
endpoint_url='https://obs.eu-de.otc.t-systems.com',
# region_name='eu-de',
use_ssl=True,
verify=True,
)
print(s3_client.list_buckets())
但是我无法以正确的方式将配置移动到我的 Django 应用程序的 settings.py 文件中用于 OTC,而它在 AWS 上运行良好。
AWS_ACCESS_KEY_ID = 'XXXXXXXXXXXXX'
AWS_SECRET_ACCESS_KEY = 'XXXXXXXXXXXXXXXXXX'
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
AWS_S3_CUSTOM_DOMAIN = 'obs.eu-de.otc.t-systems.com'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
尝试了几种不同的配置,但总是得到以下响应。
An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The AWS Access Key Id you provided does not exist in our records.
为 OTC 配置我的 settings.py 以使其正常工作的正确方法是什么?
替换了这个
AWS_S3_CUSTOM_DOMAIN = 'obs.eu-de.otc.t-systems.com'
由此
AWS_S3_ENDPOINT_URL = 'http://obs.eu-de.otc.t-systems.com'
成功了!