链接

时间:2017-07-31 15:21:32

标签: amazon-web-services amazon-s3

我遗失了什么许可,或者这是别的什么?

我们正在使用S3进行存储,并将图像投放到流量适中的网站。 我们构建了一个自定义缩略图滑块,可以将小缩略图图像链接到不同分辨率的较大滑块图像。

在S3发挥作用之前,图像会相互链接。现在,一旦点击缩略图,该图像就会自动下载,而不是仅链接到较大的图像。有什么想法吗?

这是代码,但这只是一个S3问题。谢谢!

<div class="thumbnails" itemscope itemtype="http://schema.org/ImageGallery">
    <ul id="easy-slide">
      <i id="prev" class="fa fa-arrow-circle-o-left" aria-hidden="true"></i>
      {thumbnails}
      <li itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
        <a href="{thumbnails:large}" itemprop="contentUrl" data-size="500x500">
          <img src="{thumbnails:thumb}" height="100px" width="100px" itemprop="thumbnail" alt="Image description" />
        </a>
      </li>
      {/thumbnails}
     <i id="next" class="fa fa-arrow-circle-o-right" aria-hidden="true"></i>
  </ul>
</div>

1 个答案:

答案 0 :(得分:1)

可能是内容类型问题。将图像上载到S3时,未设置正确的MIME类型。

要确认,请检查要返回的MIME类型:

curl -I -v http://www.example.com/image.jpg

然后,您需要在S3元数据中设置正确的内容类型。要更新S3对象上的元数据,可以将对象复制到自身,并在命令行中指定内容类型。

来自StackOverflow:如何使用aws cli更改对象的内容类型?:

$ aws s3api copy-object --bucket archive --content-type "image/jpg" \
    --copy-source archive/test/image.jpg--key test/image.jpg \
    --metadata-directive "REPLACE"

回答你的问题:

  

有没有办法为整个文件夹或存储桶策略设置?

S3实际上没有文件夹/目录。您需要通过CLI触摸每个对象以更改其内容类型。见What is the difference between Buckets and Folders in Amazon S3?。但是我在下面引用的命令将在整个存储桶上执行该操作。

因此,您需要使用S3 CLI更新内容类型元数据。下面是另一个答案,显示了各种命令行方法,这些方法将以递归方式更改给定类型(例如png)的所有文件的所有内容类型:

aws s3 cp \
      --exclude "*" \
      --include "*.png" \
      --content-type="image/png"  \
      --metadata-directive="REPLACE" \
      --recursive \
      --dryrun \
       s3://mybucket/static/ \
       s3://mybucket/static/

请参阅https://serverfault.com/questions/725562/recursively-changing-the-content-type-for-files-of-a-given-extension-on-amazon-s