我正在使用在带有S3的ubuntu EC2实例上运行的Django网站来托管我的静态和媒体。当我尝试将图像文件上传到模型时,我会收到以下内容。
“调用PutObject操作时发生错误(InvalidAccessKeyId):我们的记录中不存在您提供的AWS访问密钥ID。”
我有一个使用AmazonS3FullAccess的iam用户,我将正确的Access密钥复制并粘贴到我的settings.py文件中。我能够运行collectstatic并通过终端访问存储桶,我甚至可以在我的网站上正确地提供静态服务,但没有用户可以上传图像或文件。我运行并重新运行配置,但仍然没有运气。
以下是我的utils.py和settings.py中的相关代码:
utils.py
from storages.backends.s3boto3 import S3Boto3Storage
class StaticStorage(S3Boto3Storage):
location = 'static'
class MediaStorage(S3Boto3Storage):
location = 'media'
settings.py
AWS_ACCESS_KEY_ID = 'access_key'
AWS_SECRET_ACCESS_KEY = 'secret_key'
S3_REGION_NAME ='aws_region'
DEFAULT_FILE_STORAGE = 'my-project.utils.MediaStorage'
AWS_STORAGE_BUCKET_NAME = 'my-project-bucket'
STATICFILES_STORAGE = 'my-project.utils.StaticStorage'
AWS_S3_CUSTOM_DOMAIN = '//%s.s3-aws_region.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
MEDIA_URL = AWS_S3_CUSTOM_DOMAIN + 'media/'
STATIC_URL = AWS_S3_CUSTOM_DOMAIN + 'static/'
MEDIA_ROOT = MEDIA_URL
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
我的/.aws/config和凭证文件也有相同的副本并粘贴了ID和密钥。 任何和所有的帮助将不胜感激