存储在 s3 上的文件未在浏览器中呈现
file stored on s3 not rendering in browser
我正在复制从 s3 上的 .ipa 文件中提取的图像。该文件正在正确移动,但是当我每次尝试在浏览器中查看它时,它似乎已损坏,在 google chrome 中。如果我直接将文件下载到我的机器上并打开它,它看起来非常好。它在 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
最有可能的问题是您在将图像上传到 S3 时没有将 Content-Type
设置为 image/png
。在命令行上试试这个:
curl -i http://your-bucket.s3.amazonaws.com/path/to/AppIcon.png
Content-Type
header是什么?如果不是 image/png
,请在上传时设置。
这几乎可以肯定是因为Apple uses a non-standard proprietary extension of the PNG file format for the PNG files in an iPhone APP (archived link),比如你说的.ipa
是从
中提取出来的
它在 Safari 中工作的原因是因为 Safari 使用 OS 的图像解码库,它支持这种非标准格式。
有are some conversion scripts out there, that work with varying success.
我正在复制从 s3 上的 .ipa 文件中提取的图像。该文件正在正确移动,但是当我每次尝试在浏览器中查看它时,它似乎已损坏,在 google chrome 中。如果我直接将文件下载到我的机器上并打开它,它看起来非常好。它在 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
最有可能的问题是您在将图像上传到 S3 时没有将 Content-Type
设置为 image/png
。在命令行上试试这个:
curl -i http://your-bucket.s3.amazonaws.com/path/to/AppIcon.png
Content-Type
header是什么?如果不是 image/png
,请在上传时设置。
这几乎可以肯定是因为Apple uses a non-standard proprietary extension of the PNG file format for the PNG files in an iPhone APP (archived link),比如你说的.ipa
是从
它在 Safari 中工作的原因是因为 Safari 使用 OS 的图像解码库,它支持这种非标准格式。
有are some conversion scripts out there, that work with varying success.