AWS3 是一种面向网络的存储服务
Posted 虎子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS3 是一种面向网络的存储服务相关的知识,希望对你有一定的参考价值。
AWS S3 全称:(Amazon Simple Storage Service), 是一种面向网络的存储服务,可以支持用户随时在Web的任何位置,存储和检索任意大小的数据
本身也提供了简单而直观的管理控制台来处理这些任务,但我这里使用的是,面向Java方向的S3网络存储服务
在进入正题之前,首先介绍下AWS S3的一些概念
1.存储桶
存储桶是Amazon S3中用于存储对象的容器,每个对象都存在各自的存储桶中
存储桶可以组织最高等级的Amazon S3命名空间、识别负责存储和数据传输费用的账户、在访问控制中发挥作用以及用作使用率报告的汇总单位。
2.对象
Amazon S3中存储的实体,由对象数据和元数据组成
对象数据对Amazon S3不透明
元数据是一组描述对象的名称-值对,包含一些默认的元数据(修改日期)和标准HTTP元数据(Content-Type)
可以在存储对象是自定义元数据
3.键
存储桶中对象的唯一标识符
将存储桶,键和版本ID组合一起可以唯一的表示每个对象,可以将Amazon S3视为“存储桶+键+版本”与对象本身间的基本数据映射
4.区域
Amazon根据全球不同国家,划分了很多区域,每个区域的存储桶是互不干扰的
介绍基本概念之后,进入正题,即面向Java的Amazon S3网络存储实现
主要包括,Jar支持,客户端生成和功能函数引用
官网:使用AWS凭证 - AWS SDK for Java
1.Jar支持
这里采用BOM形式的Maven引入
首先,引入aws的bom并制定版本
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.11.327</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
其次,引入需要的依赖
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ec2</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
</dependency>
如果不想采用BOM形式,也可以直接导入所有的依赖
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.327</version>
</dependency>
</dependencies>
2.客户端生成
客户端是访问Web不可或缺的功能,Amazon S3客户端生成,主要依赖一下几项
Region:区域
Credentials:证书(accessKey, secretKey)
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3Client s3 = AmazonS3Client.builder()
.withRegion(this.region)
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();
3.上传功能
s3.putObject(bucket_name, key_name, tempFile);
4.下载功能
这里有个说明,一下功能有文件大小的限制
S3Object o = s3.getObject(bucket_name, key_name);
S3ObjectInputStream s3is = o.getObjectContent();
body = new byte[(int)o.getObjectMetadata().getContentLength()];
s3is.read(body);
s3is.close();
作者:炼心之旅
链接:https://www.jianshu.com/p/95057981a588
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是关于AWS3 是一种面向网络的存储服务的主要内容,如果未能解决你的问题,请参考以下文章