java 调用s3 ip 端口,AWS S3 接口调用

李洋
2023-12-01

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支持,客户端生成和功能函数引用

官网:https://docs.aws.amazon.com/zh_cn/sdk-for-java/v1/developer-guide/credentials.html

1.Jar支持

这里采用BOM形式的Maven引入

首先,引入aws的bom并制定版本

com.amazonaws

aws-java-sdk-bom

1.11.327

pom

import

其次,引入需要的依赖

com.amazonaws

aws-java-sdk-ec2

com.amazonaws

aws-java-sdk-s3

com.amazonaws

aws-java-sdk-dynamodb

如果不想采用BOM形式,也可以直接导入所有的依赖

com.amazonaws

aws-java-sdk

1.11.327

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();

 类似资料: