我遗失了什么许可,或者这是别的什么?
我们正在使用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>
答案 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/