Amazon S3云存储(Amazon Simple Storage Service)

简介
aws云存储和obs,oss类似用于简单对象存储的一种,主要也包括几个概念bucket region ak sk等 以下是sdk1.x的部分使用
创建客户端 常用的 withXXX 方法会返回 builder 对象,由此可以将方法调用组合起来,这样不仅方便而且代码更加便于阅读。在配置需要的属性后,可以调用 build 方法创建客户端。创建的客户端不可更改,而且对 setRegion 或 setEndpoint 的所有调用都会失败。
AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCredentials))
.withRegion(regions)
.build();

操作桶资源 Amazon S3 中的每个对象(文件)必须放入存储桶,它代表对象的集合(容器)。每个存储桶使用必须唯一的键 (名称) 命名
1.创建存储桶 使用 AmazonS3 客户端的createBucket方法。会返回新的存储桶。如果存储桶已存在,createBucket 方法将引发异常。
if (s3.doesBucketExistV2(bucket_name)) {
System.out.format(“Bucket %s already exists.\n”, bucket_name);
b = getBucket(bucket_name);
} else {
try {
b = s3.createBucket(bucket_name);
} catch (AmazonS3Exception e) {
System.err.println(e.getErrorMessage());
}
}
return b;
2.列出存储桶 使用 AmazonS3 客户端的listBucket方法。如果成功,会返回存储桶的列表。
List buckets = s3.listBuckets();
System.out.println(“Your {S3} buckets are:”);
for (Bucket b : buckets) {
System.out.println(“* " + b.getName());
}List buckets = s3.listBuckets();
System.out.println(“Your {S3} buckets are:”);
for (Bucket b : buckets) {
System.out.println(”* " + b.getName());
}
3.删除存储桶 在删除 Amazon S3 存储桶前,必须先确保存储桶为空,否则会导致错误。如果您的存储桶受版本控制,则必须同时删除与该存储桶关联的所有受版本控制对象。
System.out.println(" - removing objects from bucket");
ObjectListing object_listing = s3.listObjects(bucket_name);
while (true) {
for (Iterator<?> iterator =
object_listing.getObjectSummaries().iterator();
iterator.hasNext(); ) {
S3ObjectSummary summary = (S3ObjectSummary) iterator.next();
s3.deleteObject(bucket_name, summary.getKey());
}

		// more object_listing to retrieve?
		if (object_listing.isTruncated()) {
			object_listing = s3.listNextBatchOfObjects(object_listing);
		} else {
			break;
		}
	}
	System.out.println(" OK, bucket ready to delete!");
	s3.deleteBucket(bucket_name);

操作对象资源
1.上传对象 使用 AmazonS3 客户端putObject方法,并提供存储桶名称、键名称和要上传的文件。存储桶必须存在,否则将出现错误。
s3.putObject(bucket_name, key_name, new File(file_path));
2.列出对象 使用 AmazonS3 客户端listObjects方法,并提供存储桶的名称。
ListObjectsV2Result result = s3.listObjectsV2(bucket_name);
List objects = result.getObjectSummaries();
for (S3ObjectSummary os : objects) {
System.out.println("* " + os.getKey());
}
3.查询对象 使用 AmazonS3 客户端getObject方法
S3Object o = s3.getObject(bucket_name, key_name);
4.下载对象 通过对 getObjectContent 调用 S3Object 来获取对象的内容。这将返回一个 S3ObjectInputStream,其行为与标准 Java InputStream 对象的相同。
S3Object o = s3.getObject(bucket_name, key_name);
S3ObjectInputStream s3is = o.getObjectContent();
FileOutputStream fos = new FileOutputStream(new File(key_name));
byte[] read_buf = new byte[1024];
int read_len = 0;
while ((read_len = s3is.read(read_buf)) > 0) {
fos.write(read_buf, 0, read_len);
}
s3is.close();
fos.close();
5.删除对象 使用 AmazonS3 客户端deleteObject方法,并向其传递要删除的存储桶和对象的名称。指定的存储桶和对象键必须存在,否则将出现错误。
s3.deleteObject(bucket_name, object_key);
5.批量删除 使用 AmazonS3 客户端deleteObjects方式是将这些对象的名称传递过去可以从同一存储桶中删除多个对象
DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name)
.withKeys(object_keys);
s3.deleteObjects(dor);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Amazon Simple Storage Service(简称S3)是亚马逊云计算服务中的一种存储服务。它提供了一个简单而可扩展的存储解决方案,可以轻松地存储和检索大量的数据。 S3具有高度的可靠性和耐久性。它使用了分布式存储体系结构,在多个物理位置存储数据的多个副本,以及自动错误检测和修复。这样可以确保数据的安全性和可用性,并基于服务级别协议(SLA)保证99.999999999%(11个9)的持久性。 使用S3,用户可以创建称为“桶”的存储容器,并在桶中存储对象。对象可以是任何类型的文件,例如图片、视频、文档等。每个对象都有一个唯一的键(Key),可以通过该键在S3中进行检索。 S3还提供了灵活的访问控制功能,可以对存储的对象进行细粒度的权限设置,包括私有访问、公共读取、公共写入等。同时,S3支持标准的REST和SOAP API,使开发人员可以轻松地集成S3到他们的应用程序中。 除了数据存储功能,S3还提供了其他附加功能。例如,用户可以配置S3管理静态网站,并使用S3存储和分发静态内容。此外,S3还提供了跨区域复制功能,允许将数据复制到距离原始数据存储位置更远的区域,以增强数据备份和灾难恢复的能力。 总而言之,Amazon S3是一种可靠、高可用、易于使用且具有强大功能的云存储服务,它为用户提供了安全、经济高效的数据存储和检索解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值