如何在Chrome浏览器中查看Amazon S3上已上传的Zip文件?如何实现Amazon S3上SCORM压缩包链接点击后在浏览器展示内容而非触发下载?
解决方案:在浏览器中查看S3上的SCORM Zip内容
我来帮你搞定这两个问题,都是和S3上的SCORM内容访问相关的,我之前也处理过类似的需求,分享下可行的办法:
一、让他人点击S3链接直接在浏览器查看SCORM内容(而非下载Zip)
S3默认会把Zip文件的Content-Type设为application/zip,浏览器看到这个类型就会触发下载,所以核心思路是不要直接存Zip包,而是把解压后的SCORM内容上传到S3,配置成可直接访问的静态网站,具体步骤如下:
- 先把本地的SCORM Zip文件解压出来,确保里面有
index.html(Articulate Storyline生成的内容肯定会有这个入口文件),而且文件夹结构要完整,别乱改层级。 - 把解压后的所有文件和子文件夹上传到S3的一个单独目录下,比如在你的存储桶里新建一个
scorm-course/文件夹,把所有内容传进去。 - 关键一步:给每个文件设置正确的
Content-Type,不然浏览器可能识别不了:- HTML文件设为
text/html - JS文件设为
application/javascript - CSS文件设为
text/css - 图片(PNG/JPG)设为
image/png或image/jpeg - 其他资源按对应类型设置,比如音频视频的MIME类型。如果文件多,可以用AWS CLI批量修改,或者上传时用工具自动匹配类型。
- HTML文件设为
- 配置S3静态网站托管:
- 打开你的S3存储桶,切换到「属性」标签,找到「静态网站托管」选项,点击「启用」。
- 在「索引文档」里填
index.html,错误文档可以按需设置(比如error.html)。 - 保存后,你会得到一个网站端点URL,比如
http://your-bucket.s3-website-region.amazonaws.com/scorm-course/,别人访问这个链接就能直接在浏览器打开SCORM内容了。
- 最后要确保文件权限允许访问:要么给存储桶设置桶策略,允许公开的
s3:GetObject权限;要么给每个对象设置「公开可读」的ACL;如果不想公开,也可以生成预签名链接发给特定用户,有效期自己设置。
另外,如果SCORM内容里有跨域请求(比如加载外部资源),记得在S3存储桶的「权限」标签里配置CORS策略,允许对应的域名或所有域名访问。
二、在Chrome浏览器中查看S3上的Zip文件内容
如果你的Zip还没解压,直接在Chrome里查看S3上的Zip内容有几种办法:
- 用Chrome扩展辅助:安装类似「Zip Viewer」或者「Extract Zip Files」这类扩展,安装后,当你打开S3的Zip对象链接时,扩展会自动拦截并允许你在浏览器内浏览Zip里的所有文件,还能单独打开里面的HTML、图片等资源。
- 下载到本地再查看:先把Zip下载到电脑,解压后,直接用Chrome打开解压后的
index.html文件;或者有些Chrome版本支持直接拖曳本地Zip文件到浏览器窗口,配合扩展也能查看内容。 - 如果已经按上面的步骤解压上传到S3:直接访问配置好的静态网站URL,就能在Chrome里完整查看SCORM内容了,这也是最推荐的方式,毕竟用户不用下载就能直接看。
内容的提问来源于stack exchange,提问作者Junaid Asghar
相关产品推荐
相关产品推荐

