写点什么

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

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

关注

评论

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

【监控体系】全面系统的Zabbix讲解 | 含源码&监控类型整理

云智慧AIOps社区

运维 监控 zabbix 智能运维 监控工具

《火绒安全2021终端安全情报年鉴》发布 拦截弹窗广告45亿次

火绒安全

网络安全 终端工具 终端安全 勒索攻击 弹窗

8节深度学习干货课程,帮你轻松点亮AI项目开发技能

OpenI启智社区

人工智能 深度学习

无服务器计算Serverless能否引领云计算下一个十年?

用友BIP

云计算 容器 无服务器计算

中科柏诚:积极践行为中小企业服务宗旨,同乡村振兴有效衔接

联营汇聚

国内公有云首个支持保留消息功能!百度智能云天工物联网核心套件技术再升级

百度大脑

人工智能

【重构前端知识体系之HTML】HTML5给网页音频带来的变化

归子莫

html 前端 1月月更 audio

SAP ABAP 业务开关和 SAP 电商云的 Feature Level

汪子熙

angular abap 1月月更 增强包 增强技术

第四节:SpringBoot中web模版数据渲染展示

入门小站

springboot

起个变量名,好的代码应该是这样的

蜜糖的代码注释

Java 互联网 开发 后端技术

从重大漏洞应急看云原生架构下的安全建设与安全运营(上)

腾讯安全云鼎实验室

云原生 安全漏洞 安全服务

深入浅出Apache Pulsar(4)Pulsar Functions

云智慧AIOps社区

Apache kafka 云原生 pulsar 消息中间件

恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~

恒源云

深度学习 语音识别

【安全漏洞】Struts2漏洞集合总结

H

网络安全 安全漏洞

Python 判断图片和文件真实类型(qbit)

qbit

后缀

智联生活行业加速器热门FAQ:物联网企业该如何与华为云合作?

华为云开发者联盟

物联网 华为云 智联生活 智联生活行业加速器 云市场

面试官:知道 Flutter 生命周期?下周来入职!

百瓶技术

前端 生命周期 客户端 Flutter 小菜

服务网格的落地探索和实践

ZEGO即构

微服务 istio 服务网格 音视频开发

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

洛神灬殇

并发编程 AQS CyclicBarrier Java 线程 1月日更

2022年Flutter真的会一统大前端吗?

坚果

Flutter 小菜 1月月更

markdown-it 插件如何写(三)

冴羽

JavaScript 前端 vuepress markdown-it markdown-it插件

在线XML转JSON工具

入门小站

工具

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

字节跳动数据湖技术选型的思考与落地实践

字节跳动数据平台

数据湖 数据流 Apache Hudi

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

迭代发布后,为什么还需要开迭代回顾会议?

LigaAI

团队管理 敏捷开发

腾“云”架“雾”,3DCAT带你进入元宇宙

3DCAT实时渲染

云渲染 元宇宙

数智融合加速驱动企业商业创新

用友BIP

大数据 数据中台

M1 用不了 Vagrant 只能用这个代替了“ Multipass” 一个 如Docker般的虚拟机

edd

SparkSQL高并发:读取存储数据库

华为云开发者联盟

数据库 高并发 Sparksql 存储 读取

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