一個衆所周知的vbs腳本已經傳播,可以使用REST API從Windows服務器將文件發送到Amazon S3,並且它非常適合自動備份。 REST API還包含文件刪除操作,但我沒有在任何地方看到任何工作腳本,而我自己的卑微努力失敗了。如何使用REST API從vbs腳本中刪除S3對象
此作品(放置操作,部分代碼):
...
StringToSign = Replace("PUT\n\napplication/octet-stream\n\nx-amz-date:" & gmtDateStr & "\n/"& AWS_BUCKETNAME & sRemoteFilePath, "\n", vbLf)
...
With CreateObject("Microsoft.XMLHTTP")
.open "PUT", AWSBucketUrl & sRemoteFilePath, False
...
這不起作用:
...
StringToSign = Replace("DELETE\n\ntext/plain\n\nx-amz-date:" & gmtDateStr & "\n/"& AWS_BUCKETNAME & sRemoteFilePath, "\n", vbLf)
...
With CreateObject("Microsoft.XMLHTTP")
.open "DELETE", AWSBucketUrl & sRemoteFilePath, False
...
返回的錯誤是「SignatureDoesNotMatch - 我們出的要求籤名不匹配你提供的簽名,檢查你的密鑰和簽名方法。「由於put操作正常,錯誤似乎不在key和簽名方法中。試圖刪除代碼中的StringToSign可能不正確。
有沒有人曾經做過這樣的事情,或者代碼中的錯誤是明顯的?
與傳遞給'PUT'示例相比,'StringToSign'中的mime類型看起來不對。爲什麼它是'text/plain'? – Lankymart