[英]AWS S3 PUT request with presigned URL not working in javascript
我正在使用 lambda 生成預先簽名的簽名以將文件上傳到 S3 存儲桶。 當我將 lambda 與 Postman/CURL 一起使用時,它返回的簽名有效。 但是,當我嘗試從我的程序發出 PUT 請求時,它會將 localhost 附加到預先簽名的 URL。 我在本地計算機上使用 IIS 作為 Web 服務器。 可能與 IIS 配置有關嗎? 或者我在代碼或應用程序配置本身中做錯了什么?
我的代碼如下:
const xhr = new XMLHttpRequest();
xhr.open('PUT', preSignedURL);
xhr.onreadystatechange = () => {
if(xhr.readyState === 4){
if(xhr.status === 200){
alert('File Ready to n upload. xhr.status: ' + xhr.status + 'xhrstatustext:' +xhr.statusText);
}
else{
alert('Could not upload file.');
}
}
};
xhr.send(file);
這是我自己想出來的。 lambda 函數返回的 URL 格式不正確。 我所要做的就是刪除第一個和最后一個引號,然后將我的文件上傳到 S3。
var preSignedURL = preSignedURL.substring(1, preSignedURL.length-1);
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.