【问题标题】:Determine image size of file in aws s3 without downloading the image在 aws s3 中确定文件的图像大小而不下载图像
【发布时间】:2019-03-15 12:21:19
【问题描述】:

我有一些图片(jpg、png)上传到 aws s3 存储桶。我想从图像(宽度和高度)中提取一些信息(lambda 是用 golang 编写的)。不下载图片可以吗?

【问题讨论】:

  • 没有。 S3 只是一个 blob 存储。它知道的关于 blob 的唯一信息是简单的元数据,如密钥、大小、创建日期等。如果当时已知尺寸,您可以在上传它们时用它们的尺寸标记它们,然后您可以读取标签以恢复尺寸,但仅此而已。

标签: go image-processing amazon-s3


【解决方案1】:

您可以使用范围标头对对象进行部分下载 看到这个答案S3: How to do a partial read / seek without downloading the complete file?

在 AWS go sdk func (Downloader) DownloadWithContext 中似乎应该提供范围功能

获得部分文件后,可能可以提取大小信息,请参阅此答案What is the header size of png, jpg/jpeg, bmp, gif and other common graphics format?

【讨论】:

    【解决方案2】:

    S3 不会为您计算尺寸。你预先计算它们。

    您可以使用用户定义的元标记。您可以在发送对象时设置它们,或在它们存在后更新它们。

    对于私有对象,API 必须返回用户定义的元标记。

    对于公共对象,您可以使用传统的 GET 动词或仅在对象的公共 url 中使用 http HEAD 动词。

    即使是 javascript + ajax 也可以读取这个头信息。

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多