s3 javascript创建桶
我的cognitoIdentityPool代码为我的凭据,并在浏览器中使用amazon aws javascript。除了createBucket之外,我可以在浏览器中使用JavaScript进行所有操作。我在html中的js代码看起来像;所有的s3 javascript创建桶
var s3 = new AWS.S3();
var params = {
Bucket: 'myuniquebucketname',
ACL: 'private',
CreateBucketConfiguration: {
LocationConstraint: 'us-east-1'
},
GrantFullControl: 'STRING_VALUE',
GrantRead: 'STRING_VALUE',
GrantReadACP: 'STRING_VALUE',
GrantWrite: 'STRING_VALUE',
GrantWriteACP: 'STRING_VALUE'
};
s3.createBucket(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
首先,如果我充分的控制,我能写STRING_VALUE在GrantFullControl: 'STRING_VALUE',
顺便说一句,它不是必要成立GrantRead,GrantWrite或工作脚本了其他补助线。它给出了交叉来源的CORS错误。但是,我可以清除桶,清除上传文件到桶等,没有CORS错误。请任何想法。
我相信这是预期的行为。假设您的页面来自mybucket.s3.amazonaws.com,然后通过putObject上传文件会导致对mybucket.s3.amazonaws.com(同一个域)的HTTP请求,因此可以,但调用createBucket的目标是s3.amazonaws .com(一个不同的域),因此会导致CORS错误。同样,如果您调用listBuckets,则出于同样的原因它将失败并显示CORS错误。
相同的域名,不同的域名或localhost.local域名无关紧要。我可以把文件,删除桶等从每个域。只是“createBucket”我不能从任何域。我的CORS配置没问题。 –
@kaya_如果发出listBuckets会发生什么? – jarmod
是的,当我调用listBuckets时,它会因CORS错误而失败。但是在sdk中有listBuckets属性; http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property 为什么? –
我不知道你可以用JS做到这一点,你能告诉我在哪里可以找到在S3上使用JS的教程吗? – zer00ne