设置跨域访问
跨域资源共享 (CORS) 定义了在一个域中加载的客户端 Web 应用程序与另一个域中的资源交互的方式。利用 CORS 支持,您可以构建丰富的客户端 Web 应用程序,同时可以选择性地允许跨源访问您的资源。您可以通过 putBucketCors
接口设置桶的跨域访问设置,以下为示例代码,该模块获取多个命令行参数,第一个参数指定要设置其 CORS 配置的存储桶。其他参数枚举您希望允许对存储桶使用的 HTTP 方法(POST、GET、PUT、PATCH、DELETE、POST):
// Create initial parameters JSON for putBucketCors
var thisConfig = {
// 添加允许的请求头
AllowedHeaders:["Authorization"],
// 添加允许的请求方法
AllowedMethods:[],
// 添加允许的请求源
AllowedOrigins:["*"],
// 添加返回的字段
ExposeHeaders:[],
MaxAgeSeconds:3000
};
// Assemble the list of allowed methods based on command line parameters
var allowedMethods = [];
process.argv.forEach(function (val, index, array) {
if (val.toUpperCase() === "POST") {allowedMethods.push("POST")};
if (val.toUpperCase() === "GET") {allowedMethods.push("GET")};
if (val.toUpperCase() === "PUT") {allowedMethods.push("PUT")};
if (val.toUpperCase() === "PATCH") {allowedMethods.push("PATCH")};
if (val.toUpperCase() === "DELETE") {allowedMethods.push("DELETE")};
if (val.toUpperCase() === "HEAD") {allowedMethods.push("HEAD")};
});
// Copy the array of allowed methods into the config object
thisConfig.AllowedMethods = allowedMethods;
// Create array of configs then add the config object to it
var corsRules = new Array(thisConfig);
// Create CORS params
var corsParams = {
Bucket: process.argv[2],
CORSConfiguration: {
CORSRules: corsRules
}
};
// set the new CORS configuration on the selected bucket
s3Client.putBucketCors(corsParams, function(err, data) {
if (err) {
// display error message
console.log("Error", err);
} else {
// update the displayed CORS config for the selected bucket
console.log("Success", data);
}
});