javascript - 如何找到我刚刚上传到 S3 的流的总大小?

标签 javascript amazon-web-services amazon-s3

在 Node.js 服务器上,我正在将流上传到 S3。这是一个简化的示例:

import S3 from "aws-sdk/clients/s3"

const s3 = new S3({ accessKeyId, secretAccessKey, region })

async function uploadStream(key, stream) {
  const upload = s3.upload({
    Body: stream,
    Bucket: clientFiles,
    Key: key,
  })

  const result = await upload.promise()
  return result // { Bucket, ETag, Key, Location }
}

由于我使用的是流,所以在开始上传时我不知道总大小,上传结果除了 Bucket、ETag、Key 和 Location 值之外什么也没有给我。

如何获取上传流的总大小?

最佳答案

使用 ManagedUploadhttpUploadProgress 怎么样?
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3/ManagedUpload.html#httpUploadProgress-event

async function uploadStream(key, stream) {
  const upload = new AWS.S3.ManagedUpload({
    params: {
      Body: stream,
      Bucket: clientFiles,
      Key: key
    }
  });
  upload.on("httpUploadProgress", function(progress) {
    console.log(progress.total);
  });
  ...

关于javascript - 如何找到我刚刚上传到 S3 的流的总大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961459/

相关文章:

javascript - 处理 expo react native 中的多个复选框

javascript - 基于复选框选择启用/禁用表

amazon-web-services - 监控AWS EC2实例端口

amazon-web-services - Spark - "spark.deploy.spreadOut = false"可以在 S3 上提供性能优势

c# - 如何使用 C# 轻松上传文件到 Amazon S3

javascript - 在使用 drop 事件处理程序 HTML/Dom 时遇到问题

javascript - jQuery 动态排序 AppendTo

python - Angular 节点与 docker 内的 python 后端通信失败

java - 将电子邮件放入动态 s3 存储桶 Amazon 的收件人规则集

javascript - Cognito 用户授权访问 s3 对象?