以下是我的设置 django-boto
# S3 configuration
AWS_ACCESS_KEY_ID = os.environ.get("AWSAccessKeyId")
AWS_SECRET_ACCESS_KEY = os.environ.get("AWSSecretKey")
AWS_STORAGE_BUCKET_NAME = os.environ.get("S3BucketName")
S3DIRECT_REGION = os.environ.get("S3Region")
# S3 configuration for boto
BOTO_S3_BUCKET = os.environ.get("S3BucketName")
BOTO_BUCKET_LOCATION = os.environ.get("S3Region")
# AWS_S3_FORCE_HTTP_URL = True
# AWS_QUERYSTRING_AUTH = False
AWS_S3_HOST = 's3.ap-south-1.amazonaws.com'
而我对模型的定义如下
from django_boto.s3.storage import S3Storage
s3 = S3Storage()
class userProfileModel(models.Model):
"""User profile model. """
user = models.OneToOneField(User, on_delete=models.CASCADE,related_name='profile')
profile_pic = models.ImageField(storage=s3,null=True,blank=True)
我一直收到来自s3的400响应代码,没有任何错误。我唯一能找到的例外是在
envlibpython2.7site-packagesbotos3connection.py在head_bucket,第556行。
同样,我也在使用 django-s3direct
用同样的凭证,它的工作一切正常,没有任何问题。我到底是哪里出了问题?
是否您在设置中指定的用户的访问密钥实际上没有上传到S3 bucket的权限?要检查这个问题,请检查S3 bucket策略。
环境变量是否真的被正确设置了?要检查这一点,请检查S3 bucket策略。print
从您的设置文件中取出它们。