Django views 我们计算的请求签名与您提供的签名不匹配
我想从aws获得预签名的url。但我得到错误:“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。” 这是我的django代码: Sttings.py: AWS_访问_密钥_ID='***********' AWS_SECRET_ACCESS_KEY='***********' AWS_存储_存储_存储_名称='********' AWS_地区_名称='********' 在views.py中:Django views 我们计算的请求签名与您提供的签名不匹配,django-views,pre-signed-url,Django Views,Pre Signed Url,我想从aws获得预签名的url。但我得到错误:“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。” 这是我的django代码: Sttings.py: AWS_访问_密钥_ID='***********' AWS_SECRET_ACCESS_KEY='***********' AWS_存储_存储_存储_名称='********' AWS_地区_名称='********' 在views.py中: def post(self, request, key): bucket_n
def post(self, request, key):
bucket_name = settings.AWS_STORAGE_BUCKET_NAME
s3_client = boto3.client('s3',
aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
config=Config(signature_version='s3v4'),
region_name=settings.AWS_REGION_NAME
)
try:
response = s3_client.generate_presigned_url('put_object',
Params={'Bucket': bucket_name,
'Key': key},
ExpiresIn=3600)
except ClientError as e:
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR, data={"error_message": str(e)})
else:
return Response({
"url": response
})
我们需要在AWS中创建用户并授予getobject、putobject权限。文档我们需要在AWS中创建用户并授予getobject、putobject权限。文档