有时候用着你不熟悉的文档开发新项目,然后就怀着一片迷茫的心情,一点点去做,新项目用到了 AWS S3的接口文档开发,前端用的html,css,jquery,需求总是各种各样的,遇到的坑也很多,其中有一个自己的点子,去自定义了S3接口和参数,然后和底层调试,也调通了,这里主要讲讲前端怎么自定义接口和参数吧。
首先,格式化官方的SDK文档,把里面的代码格式化成我们平常看的代码格式,
这样看着就舒服多了。然后,你就看着这SDK文档增加自定义接口和参数了。
下面举个栗子,以在创建桶时需要账户权限为例,我们在创建桶的接口里加入自己定义的参数就可以了,你底层也需要做好接收该参数的接口:
<input id="bucketName" type="text"/>
<button id="createBucketButton">createBucket</button>
<p id="results"><p></p>
<script type="text/javascript">
/// <reference types="aws-sdk" />
var credentials = {
accessKeyId: 'QKA95WTSJZ',
secretAccessKey: 'Z4rE1pil5eubKlQcP',
s3ForcePathStyle: true
}; //秘钥形式的登录上传
AWS.config.update(credentials);
var ep = new AWS.Endpoint('http://mmes.com');
var s3 = new AWS.S3({endpoint: ep});
var button = document.getElementById('createBucketButton');
var results = document.getElementById('results');
button.addEventListener('click', function () {
var bucketName = $('#bucketName').val();
if (bucketName != null && "" != bucketName) {
results.innerHTML = '';
var params = {Bucket: bucketName, AccountACL: {'read':'id=1065320','write':'id=1065320','read-acp':'id=1065320'}};
s3.createBucket(params, function(err, data) {
if (err){
console.log(err, err.stack); // an error occurred
results.innerHTML = 'create bucket failed';
}else{
console.log(data); // successful response
results.innerHTML = 'create bucket successfully';
}
});
} else {
results.innerHTML = 'please input bucket name';
}
}, false);
</script>
这里我们自定义了AccountACL参数,里面的作为对象的值,SDK的接口可以这样定义了:
ACL: {
location: "header",
locationName: "x-amz-acl"
},
AccountACL: {
shape: "S11",
location: "headers",
locationName: "x-amz-gram-",
xmlNamespace:{uri: "http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure"
},
AccountACL:{location:"headers",locationName:"x-amz-gram-",xmlNamespace:{uri: "http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{locationName:{}}},
Bucket: {
location: "uri",
locationName: "Bucket"
},
大家只要把中间没有空格的一行放到上面提到的官方文档里,这样就能使用了,自定义接口也是类似的操作,然后自己再调试调试应该能调试通过,这里给大家一种思路,具体操作还要看自己了。