![](/img/trans.png)
[英]How to track upload progress to S3 using aws-sdk V3 for browser (javascript)
[英]How to actually track S3 upload progress (JavaScript SDK)
我希望能夠跟蹤 S3 文件上傳的進度(上傳的字節數占總字節數)。
在任何人將此標記為受騙之前 - 事實並非如此。 我在 StackOverflow 上看到的所有其他答案實際上都是不正確的。 如果你做這樣的事情:
s3
.putObject(
{
Bucket: 'xyz',
Key: 'wow.png',
Body: data,
},
(err, data) => {
console.log('done', err, data);
}
)
.on('httpUploadProgress', progress => {
console.log('Progress:', progress);
});
您將獲得一個進度更新,顯示總大小:
Progress { loaded: 1082019, total: 1082019 }
這沒有用。 我正在尋找的是更細粒度的上傳進度報告,就像您在上傳過程中通常看到的一樣(無論文件大小.. 1MB 或 100MB):
100% 中的 0%
100% 中的 3%
100% 中的 7%
100% 中的 9%
(等等)
好吧,這就是答案(盡管很蹩腳)。 只是分享這個,因為它可能是其他人的潛在問題。
這不會在Node.js的環境中工作! 我一直在以這種方式測試它, httpUploadProgress
調用一次httpUploadProgress
回調。 一旦我將代碼移動到實際的前端客戶端,它就會按預期工作並在文件上傳時打印進度。
嘗試這個:
s3
.putObject({
Bucket: 'xyz',
Key: 'wow.png',
Body: data,
},
(err, data) => {
console.log('done', err, data);
}
)
.on('httpUploadProgress', ({ loaded, total }) => {
console.log(ContentType, 'Progress:', loaded, '/', total, `${Math.round(100 * loaded / total)}%`);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.