AWS S3 API

姜聪
2023-12-01

Amazon的S3是一个公开的服务,使 Web 开发人员能够存储数字资产(如图片、视频、音乐和文档等),以便在应用程序中使用。开发人员将数字资源通过S3 API或登陆S3的管理页面,上传到S3服务器,生成一个url,可以通过url访问该数字资源。

我们这里采用S3 API工具类的为JetS3t。通过rest接口操作S3上的对象,用到的jar包为jets3t-0.9.0.jar。

 

 

  • 常用操作API

1.创建s3Service对象

输入:访问密钥awsAccessKey,秘密密钥awsSecretKey
输出:s3Service对象

String awsAccessKey = "****"; 
String awsSecretKey = "****";
AWSCredentials awsCredentials = new AWSCredentials(awsAccessKey, awsSecretKey);
S3Service s3Service = new RestS3Service(awsCredentials);

2.创建存储段

输入:存储段名称bucketName
输出:存储段bucket(类似于文件夹)

S3Bucket bucket = s3Service.getOrCreateBucket("video");

 3.创建S3对象

输入:存储段bucket,S3对象路径
输出:S3对象s3obj(类似于文件,S3对象的key为文件名XXX.mp4)

S3Object s3obj = new S3Object(bucket, new File("/path/video/XXX.mp4"));

 4.上传文件

输入:存储段bucket,S3对象s3obj
输出:

s3Service.putObject(bucket, s3obj);

 5.创建具有有效期的url

输入:存储段bucket名称,S3对象key,有效时间 (秒)
输出:具有有效期的url

String url = s3Service.createSignedUrl(method,bucketName,objectKey,specialParamName,headersMap,secondsSinceEpoch,false,false,false);

 6.删除S3对象

输入:存储段bucket名称,S3对象key
输出:

s3Service.deleteObject(bucket.getName(), s3obj.key);

 7.列出所有bucket

S3Bucket[] buckets = s3Service.listAllBuckets();
for (S3Bucket b : buckets) {
   System.out.println(b);
}

 

 

  • 文件上传流程

第一步S3认证
第二步创建文件夹(bucket)
第三步创建文件(s3obj)
第四步上传文件,上传完文件到S3后,我们可以得到该文件的url,例如 http://video.s3.amazonaws.com/XXX.mp4
但该url是不能直接被访问的

第五步创建可以访问的url,例如
https://video.s3.amazonaws.com/XXX.mp4?AWSAccessKeyId=1asd06A5MR2&Expires=1234738280&Signature=rZvk8Gkms =
通过该url可以访问文件,但该url具有有效期,超过有效期后不能访问该文件

 

  • 参考资料

http://storage.chinaunix.net/a2009/1013/758/000000758429.shtml

http://www.ibm.com/developerworks/cn/web/ar-cloudaws2/index.html

 类似资料:

相关阅读

相关文章

相关问答