写点什么

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:285254
用户头像

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

关注

评论

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

NumPy之:NumPy简介教程

程序那些事

Python 数据分析 Python3 Numpy 程序那些事

架构实战营 模块2作业

CR

炫彩无界,性能怪兽,M1 扛鼎未来 —— 2021 年 Apple 春季新品发布会全记录

清秋

产品 苹果 硬件 新闻

“湘”遇区块链 赋能新业态

CECBC

实体经济与数字经济加速融合 中国经济新动能快速成长

CECBC

数字经济

区块链电子证据的司法应用现状与展望

CECBC

python内置数据结构list、set、dict、tuple(一)

若尘

List 数据结构 set 字典 Python编程

翻译:《实用的Python编程》TheEnd

codists

Python

专访声网首席资深iOS研发工程师龚宇华:从自学计算机到高级架构师

黑马腾云

专访

应用区块链技术打通各自为战形成的壁垒

CECBC

如何做好前馈管理?

石云升

28天写作 职场经验 管理经验 4月日更

如何从零开始学Python:(4)如何处理列表数据?

广之巅

Python 4月日更

白皮书:区块链将成隐私计算产品必选项,提供三方面助力

CECBC

区块链

使用 SpringBoot 的 CommandLineRunner 遇到的坑

Java小咖秀

容器 开发 springboot CommandLineRunner ApplicationRunner

为什么 Serverless 将推动边缘计算的革命

公众号:云原生Serverless

Serverless 边缘计算

没有自信的人,才会在意别人的评价

小天同学

心理 日常思考 个人感悟 4月日更 自信

网络安全传奇吴翰清采访提纲 |调查采访能力考核

清秋

网络安全 签约计划 调查采访能力考核

Golang 并发

escray

学习 极客时间 Go 语言 4月日更

【LeetCode】解码方法Java题解

Albert

算法 LeetCode 4月日更

Properties类使用需要注意的坑

风翱

properties 4月日更

不忘初心,砥砺前行|暨InfoQ写作平台一周年

程序员架构进阶

28天写作 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

分库分表笔记

luojiahu

分库分表

Semaphore自白:限流器用我就对了!

王磊

Java 多线程 Semaphore

《采访阿里“守护神”吴翰清:安全攻防-采访提纲》

Geek_6370d5

浅谈Javascript中的forEach和map之间的区别

devpoint

遍历 foreach map reduce

Zookeeper基础原理&应用场景详解

leonsh

zookeeper 中间件 ZooKeeper原理

【采访融云CTO杨攀:2021如何让融云迈向更高舞台】(采访)

码界西柚

融云 杨攀

《专访彩食鲜CTO乔新亮:体系的重要性》(采访提纲)

花花

调查采访能力考核

专访吴翰清 || 如何用网络安全保障个人隐私

Bob

网络安全 个人隐私 调查采访能力考核

禁止算法识别性别,能消解歧视吗?

脑极体

Ansible 配置

耳东@Erdong

4月日更

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