sách gpt4 ai đã đi

Tạo StringToSign

In lại 作者:行者123 更新时间:2023-12-05 05:28:47 29 4
mua khóa gpt4 Nike

我正在阅读将查询字符串传递给 Amazon 的 S3 以进行身份验证的文档,但似乎无法理解 StringToSign 的创建和使用方式。我正在寻找一个具体示例来说明 (1) 如何构造 StringToSign,以及 (2) 一旦我有了签名,如何调用表单。

为了举例,假设以下是我的信息:

Content-type='image/jpeg'
Bucket='test-bucket'
Key = 'filename'
ACL = 'public-read'
Expiration = '(never expires)'
Access Key = '12345'
Secret Password = '1a2b3c'
File =

我如何从中获取 StringToSign 值?一旦有了它,我将如何创建以下表单:




并供引用:http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html#RESTAuthenticationQueryStringAuth .谢谢。

1 Câu trả lời

根据您的描述,您似乎希望使用 POST 支持基于浏览器的上传。有一个section of the AWS documentation which talks about this .

作为概述,请记住您要么必须使您的存储桶公开可写,要么包括一个策略文档。我假设您将包含一份政策文件(如果您不想,请查看文档):

Policy 文档只是 JSON 的一个片段,用于对请求进行身份验证,并给出了上传数据之前必须满足的一系列条件。例如:

"expiration": "2020-12-01T12:00:00.000Z",
"conditions": [
{"acl": "public-read" },
{"bucket": "test-bucket" },
["eq", "$key", "filename"],
]
}

这表示上传操作将被允许到 2020 年,因为该存储桶仅可公开读取,存储桶名称为“test-bucket”且 key 正好等于“文件名”。

现在,要构造你的签名,你需要上面的 JSON 文档,UTF-8 编码,然后 base64,然后使用你的 secret 访问 key (使用 hmac sha1)签署整个事情,最后 base64 整个事情

policy_data = ... # stuff above
enc_policy = base64.b64_encode(policy_data.encode('utf8'))
signed = base64.b64_encode(hmac.new(AWS_SECRET, enc_policy, hashlib.sha1))

最后,您的表单将如下所示:

 

Key to upload:



Content-Type:




File:




关于python - 创建 StringToSign,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290684/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com