我在DRF和某个API调用中使用令牌身份验证,想要重定向到S3(使用像https://my_bucket.s3.amazonaws.com/my/file/path/my_file.jpg?Signature=MY_AWS_SIGNATURE\u0026amp这样的URL ; AWSAccessKeyId = MY_AWS_ACCESS_KEY_ID).但是,我从AWS收到以下错误:
很清楚为什么会发生这种情况 – 带有DRF令牌的Authorization标头会随着重定向传播而S3不喜欢它.
在研究并尝试了一百万种方法来摆脱那个标题后,我放弃并决定尝试用S3值覆盖标题:AWS MY_AWS_SIGNATURE:MY_AWS_ACCESS_KEY_ID,之后我得到一个不同的错误:
如您所见,最终结果是相同的 – 即使我在响应中覆盖Authorization标头,它仍保留原始DRF令牌身份验证值.
# relevant portion of my response construction
headers = {'Location': 'https://my_bucket.s3.amazonaws.com/my/file/path/my_file.jpg','Authorization': 'AWS %s:%s' % (params['AWSAccessKeyId'],params['Signature'])}
return Response(status=status.HTTP_302_FOUND,headers=headers)
所以,我的问题是,如何删除或覆盖DRF响应中的Authorization标头?