东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

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

关注

评论

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

云端守望者(上):十二道难关

天翼云开发者社区

云主机 云安全

为什么说Aquqnee有望成为GameFi板块天花板

小哈区块

Ranger对HDFS权限管理探索与实践

移动云大数据

hdfs Ranger

阿拉德之怒手游超详细图文架设教程

echeverra

游戏开发

正则表达式提取 git 提交记录中的新增代码行

OpenHacker

JavaScript 正则表达式

什么是低代码开发?

源字节1号

软件开发 低代码开发

为什么说Aquqnee有望成为GameFi板块天花板

西柚子

云端守望者(下):十八般武艺

天翼云开发者社区

云计算 云存储

资产跟踪管理系统解决方案

低代码小观

资产管理 企业管理系统 #资产追踪 CRM系统 客户关系管理系统

DPDK技术系统学习一(接收,发送,arp,icmp功能测试)

Linux服务器开发

虚拟化 网络协议栈 Linux服务器开发 DPDK C++后台开发

天翼云CDN+云主机护航,全天候支撑云上战“疫”

天翼云开发者社区

Tapdata 与阿里云 PolarDB 开源数据库社区联合共建开放数据技术生态

tapdata

数据库

Telnet是什么意思?与SSH有啥区别?

行云管家

运维 SSH IT运维

开源之夏 2022 与您相约!

RadonDB

数据库 开源 开源之夏

千万张医疗影像,都去了哪里?

天翼云开发者社区

云主机 云存储

Tech Talk 活动预告丨使用 Amazon IoT Core 构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

Amazon IoT Core

SimpleDateFormat类的安全问题,这6个方案总有一个适合你

华为云开发者联盟

Java 高并发 线程池 线程安全 SimpleDateFormat类

持续进击,STI上演极致通缩模型

西柚子

架构实战营总结

刘洋

#架构实战营 「架构实战营」

ETL批量作业调度TASKCTL桌面应用端安装步骤

TASKCTL

kettle 批量任务 ETL 自动化运维 调度任务

图数据库|基于 Nebula Graph 的 Betweenness Centrality 算法

NebulaGraph

数据库 算法 图数据库

【直播预告】凡泰讲堂第一期:洞见云原生,Kubernetes技术详解与实践

FinClip

Kubernetes

软件测试很简单么?

chenkl

测试

linux运维是做什么工作的?有哪些岗位?

行云管家

运维 网络运维 IT运维

Go Runtime 设计:计算资源调度

张旭海

Go runtime goroutine scheduler

Groovy踩坑记之方法调用八层认识

FunTester

synchronized有几种用法?

王磊

Java java面试

网络协议之:Domain name service DNS详解

程序那些事

Java Netty 程序那些事 4月月更

上海理工大学:巧用数字技术打响智慧抗疫信息战

华为云开发者联盟

低代码 welink 防疫 AppCube 核酸检测

了解云桌面,看这一篇文章就够了!

天翼云开发者社区

企业为什么要实施知识管理?

小炮

知识管理 企业知识管理 企业知识管理工具

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