从djagno模型在S3上存储图像时,继续获得400错误响应?

时间:2017-09-18 19:26:10

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

以下是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)

我一直收到400响应代码而没有来自s3的任何错误。我能找到的唯一例外是

  head_bucket,第556行中的

env / lib / python2.7 / site-packages / boto / s3 / connection.py

同样,我也使用django-s3direct具有相同的凭据,并且工作正常,没有任何问题。我在哪里错了?

1 个答案:

答案 0 :(得分:0)

您在设置中指定的访问密钥的用户是否可能实际上没有上传到S3存储桶的权限?要检查这一点,请检查S3存储桶策略。

环境变量是否实际设置并正确设置?要检查此问题,请在设置文件中print进行检查。