阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

Amazon 支持跨域资源分享功能 CORS,向 S3 上传不再需要代理

  • 2012-09-02
  • 本文字数:819 字

    阅读完需:约 3 分钟

9 月 1 日,Amazon AWS宣布:支持跨域资源分享(Cross-Origin Resource Sharing,简称CORS)。

CORS 是 W3C 标准化组织提出的一种规范机制,允许客户端的跨域请求。API 可以使用规范中定义的算法,请求跨域的资源。开发人员构建的web 程序,就可以请求提供主要内容的域之外其他域的内容。

AWS 指出:之所以要这样做,是因为 web 浏览器使用了同域策略,以保证内容的安全性。该缺省策略确保来自一个站点和域的脚本和其他主动内容不会与另一个位置的内容发生交互,以避免产生不可预期的危险行为。但在某些情况下,一个域的开发人员也许有很合理的原因,访问其他位置的资源。CORS 就是提供了这种机制,让开发人员告诉浏览器,允许这样的行为。

AWS 的这篇博客中提出:

  • 你可以使用 CORS 支持,使用 JavaScript 和 HTML 5 来构建 Web 应用,直接访问 Amazon S3 中的资源,而不再需要代理服务器做中转。
  • 可以使用 HTML 5 中的拖拽功能,直接向 S3 上传文件,展示上传进度,或是直接从 web 应用中更新内容。
  • 托管在不同域中的外部网页、样式表和 HTML 5 应用,现在可以引用存储在 S3 中的 web 字体或图片,让这些资源能被多个网站共享。

Attachments.me 的开发人员 Ben Core 尝试了 S3 提供的 CORS,指出要想这样做需要的几个步骤:

  1. 创建 CORS 配置清单 要说明允许访问 S3 中哪个 bucket。清单中要包括: - 哪些域允许访问 S3 的 bucket
  • 可以采取哪些动作(PUT, POST, GET, DELETE)
  1. 创建签名的 POST 参数
  2. 使用 CORS 完成浏览器端向 Amazon S3 上的上传。

Ben 给出了示例代码,并指出要注意以下几点:

  • 使用了 HTML 5 中的 FormData 对象,以完成多部分上传,该 API 允许开发者跟踪实时的上传进度。
  • 创建的有特定签名的 HTML POST 参数加入了 FormData 对象,使用的是 append() 方法。
  • 代码在 Chrome 扩展插件中运行,要想在更多浏览器中运行,需要再做些其他工作。

如果您使用了 Amazon 的 S3 作为自己互联网访问的存储,不妨尝试一下 CORS,也欢迎您在评论中分享您的使用经验和体会。

2012-09-02 21:285406
用户头像

发布了 479 篇内容, 共 171.3 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

Cocos 大表姐:所有技术的本质都是数学问题丨ECUG Meetup 讲师专访

七牛云

音视频 游戏开发 Cocos Meetup

建党100周年,快来预约博睿数据驻场服务!

博睿数据

只等你来!OpenAtom XuperChain开发者夏季论坛来啦

百度开发者中心

百度 开源 开发者

多种数据形式下智能问答的应用解读

百度大脑

能否借鉴鸿蒙思路实现物联网燃气泄露监控?

老猿Python

鸿蒙 物联网 北向接口 远程监控

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程!

Java 程序员 架构 面试

SpringCloud Gateway 路由转发性能优化

中原银行

微服务 性能优化 SpringCloud Gateway 中原银行

为什么一款看似美好的产品会没有市场?

boshi

创业心态 产品经历

作为一名程序员如何开展自己的副业呢?

Changing Lin

话题讨论 6月日更

停车场事故频频,AI 达人将摄像头变身安全卫士

阿里云CloudImagine

阿里云 计算机视觉 音视频 应用 英特尔

浪潮云入选中国网络安全百强综合实力领军者象限

云计算

SpringCloud Gateway 路由数量对性能的影响研究

中原银行

微服务 SpringCloud Gateway JMH性能基准测试 中原银行

openEuler开源之后:引领新的技术变革

花花

试用期 签约计划

Flink EventTime 和 Watermark

Alex🐒

flink 翻译 flink1.13

【 Meetup 推荐】6月26日,邀请您相聚西子湖畔,探讨 2021 音视频技术最佳实践

七牛云

音视频 直播 RTC Meetup

5分钟速读之Rust权威指南(二十四)Box

wzx

rust

失业这件事,你认真考虑过吗?| 话题

Albert

6月日更

从零开始学习3D可视化之爆炸图

ThingJS数字孪生引擎

科技 3D 3D可视化

程序员上班“划水”向阿里猛投简历,两次被刷后,终成“菜鸟”P6

Java 程序员 架构 面试

超详细!百度富媒体检索比对系统的关键技术

百度开发者中心

百度

爆场预警!百度大脑开放日-AI赋能软硬件产品创新

百度大脑

百度大脑开放日

百度C++工程师的那些极限优化(并发篇)

百度Geek说

c++ 性能优化

让开发更丝滑,KodeRover开源分布式持续交付项目Zadig | TGO喜报

花花

试用期 签约计划

GitOps系列二|如何借助极狐GitLab 和Terraform以代码形式构建基础设施?

极狐GitLab

kubernete

为什么智能作业灯突然成为教育行业的趋势?

anyRTC开发者

音视频 WebRTC 智能硬件

2021年,Java开发者值得学习的13项技能

百度开发者中心

Java

Nebula 基于 ElasticSearch 的全文搜索引擎的文本搜索

NebulaGraph

elasticsearch 索引 图数据库

优雅编程 | 7 个你应该掌握的 JavaScript 编码技巧

devpoint

JavaScrip 6月日更

微博、快手纷纷整治饭圈乱象:抵制不良饭圈风气是全网的责任

石头IT视角

为了不写接口文档,我肝了个 IDEA 插件!

程序员小航

Java IDEA idea插件 YAPI 文档

[译] R8 优化: Staticization

Antway

6月日更

Amazon支持跨域资源分享功能CORS,向S3上传不再需要代理_亚马逊云科技_郑柯_InfoQ精选文章