2、设置CORS
由于SDK通过Ajax提交数据,需要在S3桶策略中配置跨域提交的CORS,示例中的*建议在生产环境中改成自己的域名.
*
PUT
POST
DELETE
GET
HEAD
3000
*
3、设置存储桶策略,允许访问及上传
生成策略
ps:actions 选择getObject和putObject
设置策略
4、上传
npm install aws-sdk
let AWS = require('aws-sdk')
AWS.config.region = S3Region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: S3IdentityPoolId,
})
AWS.config.credentials.get(function() {
let accessKeyId = AWS.config.credentials.accessKeyId
let secretAccessKey = AWS.config.credentials.secretAccessKey
let sessionToken = AWS.config.credentials.sessionToken
let s3 = new AWS.S3({
'apiVersion': '2006-03-01',
'accessKeyId': accessKeyId,
'secretAccessKey': secretAccessKey,
'sessionToken': sessionToken,
'region_name': S3Region,
})
let data = {
Bucket: Bucket,
Key: objectkey,
Body: file,
ContentEncoding: 'base64',
ContentType: 'image/jpeg',
}
s3.putObject(data, (err, data) => {})
}