我正在使用快速路由通過 AWS 開發工具包獲取 s3 物件:
router.get('/myRoute', (req, res) => {
const s3 = new AWS.S3({apiVersion: '2006-03-01'});
s3.getObject({Bucket: 'my-bucket', Key: 'my-key'},
function (error, data) {
if (error != null) {
// console.log(error)
return res.send("Failed to retrieve an object: " error.message);
} else {
console.log("data: ", data)
return res.json(data)
}
});
});
上面的控制臺輸出是:
data: {
AcceptRanges: 'bytes',
LastModified: 2022-06-06T01:29:41.000Z,
ContentLength: 327626,
ETag: '"8c9626sa6fd1d5bf3s990c36d607614b"',
VersionId: 'GoEUVUP9eecY5rRRekhoG8PDtW0lp.dy',
ContentType: 'application/pdf',
Metadata: {},
TagCount: 1,
Body: <Buffer 25 50 44 46 2d 31 2e ... 327576 more bytes>
}
反應客戶端代碼如下所示:
const response = await fetch("/api/aws/brochure")
.then(res => res.json())
.then((data) => {
console.log(typeof(data.Body.data))
const fileURL = window.URL.createObjectURL(new Blob([new int8Array(data.Body.data).buffer]));
//Open the URL on new Window
const pdfWindow = window.open();
pdfWindow.location.href = fileURL;
});
結果是:

uj5u.com熱心網友回復:
在初始化 blob 物件時,您應該指定型別,它是一個字串,指示緩沖區中包含的資料的 MIME 型別。
因此,要創建 blob,請使用以下簽名
var blob = new Blob([new int8Array(data.Body.data).buffer], type: "application/pdf");
在此處閱讀有關 blob的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493338.html
標籤:javascript 节点.js 反应 表示 亚马逊-s3
上一篇:在檔案打開對話框中包含多選選項
