存储在s3上的文件无法在浏览器中呈现

时间:2015-01-09 22:03:19

标签: ruby google-chrome amazon-s3

我正在复制从s3上的.ipa文件中提取的图像。该文件正在正确移动,但当我尝试在浏览器中查看它时,它似乎在谷歌浏览器中破坏了。如果我将文件直接下载到我的机器并打开它看起来很好。它也可以在Safari中呈现。

Dir.mktmpdir do |dir|
   Zip::File.open(tmp_ipa) do |zip_file|
   # Find Icon File
   icon = zip_file.find do |entry|
     entry.name.include? 'AppIcon76x76@2'
   end
   icon.extract(File.join(dir, 'AppIcon.png'))
     s3_icon = bucket.objects[icon_dest]
     s3_icon.write(Pathname.new(File.join(dir, 'AppIcon.png')))
     icon_url = s3_icon.public_url.to_s
   end
end

2 个答案:

答案 0 :(得分:3)

最可能的问题是,当您将图像上传到S3时,未将Content-Type设置为image/png。在命令行上尝试:

curl -i http://your-bucket.s3.amazonaws.com/path/to/AppIcon.png

Content-Type标题是什么?如果不是image/png,请在上传时设置。

答案 1 :(得分:2)

这几乎可以肯定是因为Apple uses a non-standard proprietary extension of the PNG file format for the PNG files in an iPhone APParchived link),例如您说它是从.ipa中提取的。

它在Safari中工作的原因是因为Safari使用操作系统的图像解码库,它们支持这种非标准格式。

are some conversion scripts out therework with varying success