swisscomdev - Swisscom S3 动态存储 - 带有 boto3 的签名版?
问题描述
像这样创建 S3 客户端时:
s3 = boto3.client(
's3',
endpoint_url=app.config['S3_HOST'],
aws_access_key_id=app.config['S3_SETTINGS']['accessKey'],
aws_secret_access_key=app.config['S3_SETTINGS']['sharedSecret'],
config=Config(signature_version='s3')
)
然后尝试像这样上传文件:
s3.upload_fileobj(Fileobj=_file,
Bucket=app.config['S3_BUCKET'],
Key=file_hash,
ExtraArgs={
"Metadata": {
"file_name": file_name
}
})
它抛出"Error: The request signature we calculated does not match the signature you provided. Check your key and signing method."
s3v4 似乎也不起作用。我应该使用什么签名版本?
解决方案
推荐阅读
- windows - 为什么某些 WCF 命名管道客户端会收到 TimeoutException
- node.js - Discord.js - 如何让机器人通过服务器 ID 打印服务器名称?
- javascript - Ionic 4 Deeplink 插件返回错误路由不匹配
- mysql - MySQL 服务器版本,用于在第 3 行的 '' 附近使用正确的语法
- vb.net - 如何在 VB.Net 的变量中设置特定列中最后一行的值
- batch-file - 将一行文本添加到文件的批处理脚本
- reactjs - React Native:如何将 mobx-persist 添加到现有商店
- postgresql - 为时间点查询建模状态更改的最佳方法
- react-native - react-native 中的搜索栏不显示任何结果
- javascript - 在 Python 中嵌入交互式图形 - 使用 Plotly 发送电子邮件