【问题标题】:AWS S3 Same Image, Different SizesAWS S3 相同的图像,不同的大小
【发布时间】:2016-03-19 04:06:28
【问题描述】:

当用户将图像上传到我的网站时,我会将不同大小的图像的多个副本保存到 S3。是否可以保存一份图像并使用 URL 变量访问不同的大小?

我更喜欢这样的:

https://s3-us-west-2.amazonaws.com/img.jpg?size=small
https://s3-us-west-2.amazonaws.com/img.jpg?size=medium
https://s3-us-west-2.amazonaws.com/img.jpg?size=large

与此相反:

https://s3-us-west-2.amazonaws.com/img1.jpg
https://s3-us-west-2.amazonaws.com/img2.jpg
https://s3-us-west-2.amazonaws.com/img3.jpg

我不想不必要地下载大图像。

【问题讨论】:

    标签: html image amazon-web-services amazon-s3


    【解决方案1】:

    不,您不能使用查询参数访问 S3 上的不同对象(文件)。

    就像您自己建议的那样,您必须想出一个命名架构。您的建议是:

    https://s3-us-west-2.amazonaws.com/bucketname/<imagename><size>.<ext>
    - Example: -
    https://s3-us-west-2.amazonaws.com/bucketname/img1.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img2.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img3.jpg
    

    如果你不喜欢这个,另一种选择:

    https://s3-us-west-2.amazonaws.com/bucketname/<imagename>/<size>.<ext>
    
    - Example: -
    https://s3-us-west-2.amazonaws.com/bucketname/img/1.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img/2.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img/3.jpg
    - or named sizes: -
    https://s3-us-west-2.amazonaws.com/bucketname/img/small.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img/medium.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img/large.jpg
    

    或者:

    https://s3-us-west-2.amazonaws.com/bucketname/<imagename>-<size>.<ext>
    - Example: -
    https://s3-us-west-2.amazonaws.com/bucketname/img-1.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img-2.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img-3.jpg
    - or named sizes: -
    https://s3-us-west-2.amazonaws.com/bucketname/img-small.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img-medium.jpg
    https://s3-us-west-2.amazonaws.com/bucketname/img-large.jpg
    

    或者,如果您愿意手动设置每个上传对象的内容类型,甚至:

    https://s3-us-west-2.amazonaws.com/bucketname/<imagename>.<ext>/<size>
    - Example with named sizes: -
    https://s3-us-west-2.amazonaws.com/bucketname/img.jpg/small
    https://s3-us-west-2.amazonaws.com/bucketname/img.jpg/medium
    https://s3-us-west-2.amazonaws.com/bucketname/img.jpg/large
    

    如何在 S3 存储桶中命名图像对象并不重要,但您的 Web 应用程序必须知道如何将图像 URL 放在一起才能链接到所需的格式。

    【讨论】:

      【解决方案2】:

      这在 S3 中是不可能的(因为 S3 不会计算其他格式,它们只会提供您上传的文件)。但是https://www.imgix.com 是可能的,它和你描述的差不多。

      【讨论】:

      • 另一个类似的服务:cloudinary.com 他们甚至可以按需调整您存储在 S3 中的图像的大小。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2014-11-27
      • 1970-01-01
      相关资源
      最近更新 更多