Amazon s3 为AmazonS3生成身份验证头

Amazon s3 为AmazonS3生成身份验证头,amazon-s3,key,Amazon S3,Key,为什么亚马逊AWS如此专业和复杂 我只想我的应用程序上传文件到S3。在阅读了网站上的文档后,我发现我可以使用“POST”请求,只需给出两个参数“key”和“file”。(没有其他东西,没有政策)但问题是“关键” “key”是身份验证头。但他们只是放了一个伪代码,告诉我如何构造密钥,我搞不懂 Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature; Signature = Base64( HMAC-SHA1( UTF-8-En

为什么亚马逊AWS如此专业和复杂

我只想我的应用程序上传文件到S3。在阅读了网站上的文档后,我发现我可以使用“POST”请求,只需给出两个参数“key”和“file”。(没有其他东西,没有政策)但问题是“关键”

“key”是身份验证头。但他们只是放了一个伪代码,告诉我如何构造密钥,我搞不懂

Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature;

Signature = Base64( HMAC-SHA1( UTF-8-Encoding-Of( YourSecretAccessKeyID, StringToSign ) ) );

StringToSign = HTTP-Verb + "\n" +
    Content-MD5 + "\n" +
    Content-Type + "\n" +
    Date + "\n" +
    CanonicalizedAmzHeaders +
    CanonicalizedResource;

CanonicalizedResource = [ "/" + Bucket ] +
    <HTTP-Request-URI, from the protocol name up to the query string> +
    [ sub-resource, if present. For example "?acl", "?location", "?logging", or "?torrent"];

CanonicalizedAmzHeaders = <described below>
Authorization=“AWS”+”“+AWSAccessKeyId+”:“+签名;
签名=Base64(HMAC-SHA1(UTF-8-Encoding-Of(YourSecretAccessKeyID,StringToSign));
StringToSign=HTTP动词+“\n”+
Content-MD5+“\n”+
内容类型+“\n”+
日期+“\n”+
标准化的达姆扎德人+
规范化资源;
CanonicalizedResource=[“/”+存储桶]+
+
[子资源,如果存在。例如“acl”、“位置”、“日志记录”或“torrent”];
规范化DAMZHEADERS=


有经验的程序员能把它们翻译成PHP或Javascript语言吗?是否需要包含外部代码/库?因为我在那里看到了一些外来函数。

如果您使用的是php,那么使用。用于上载文件

// Instantiate the class
$s3 = new AmazonS3();

$response = $s3->create_object('my-bucket', 'myfile.txt', array(
    'fileUpload' => 'upload_me.txt',
));

// Success?
var_dump($response->isOK());

用这个,它会帮你的。