我目前正在尝试使用cURL和c++开发一个上传文件到Amazon S3存储桶的应用程序。经过仔细阅读S3开发者指南后,我已经开始使用cURL并按照开发者指南中描述的方式形成Header,在经历了多次尝试和错误后,确定了创建S3签名的最佳方法,但是现在我遇到了501错误。接收到的头部提示我使用的方法未实现。我不确定我的错误在哪里,但以下是我发送给亚马逊的HTTP头部:
PUT /test1.txt HTTP/1.1
Accept: */*
Transfer-Encoding: chunked
Content-Type: text/plain
Content-Length: 29
Host: [BucketName].s3.amazonaws.com
Date: [Date]
Authorization: AWS [Access Key ID]:[Signature]
Expect: 100-continue
出于安全原因,我已经省略了Bucket名称、Access Key ID和Signature。
我不确定自己做错了什么,但我认为错误是由于Accept和Transfer-Encoding字段(并非完全确定)而产生的。所以,有人能告诉我我错在哪里,或者为什么会得到一个501吗?