s3 java 断点续传_ceph储存的S3接口实现(支持断点续传)

本文档介绍了如何使用Java实现Ceph存储系统的S3接口,支持断点续传功能。`S3Manager`类通过`AmazonS3ClientBuilder`初始化AWS S3客户端,实现上传、追加上传和分块上传文件,并提供文件下载(包括分块下载)的功能。此外,还包含了检查存储桶是否存在并创建的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

* Title: S3Manager

* Description: Ceph储存的s3接口实现,参考文档:

*https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/RetrievingObjectUsingJava.html*http://docs.ceph.org.cn/radosgw/s3/* author: xu jun

* date: 2018/10/22*/@Slf4j

@Servicepublic classS3Manager extends StorageManagerBase implements StorageManager {privatefinal UKID ukid;privatefinal S3ClientConfig s3ClientConfig;privatefinal RedisManage redisManage;privateAmazonS3 amazonClient;

@AutowiredpublicS3Manager(UKID ukid, S3ClientConfig s3ClientConfig, RedisManage redisManage) {this.ukid =ukid;this.s3ClientConfig =s3ClientConfig;this.redisManage =redisManage;

}privateAmazonS3 getAmazonClient() {if (amazonClient == null) {

String accessKey=s3ClientConfig.getAccessKey();

String secretKey=s3ClientConfig.getSecretKey();

String endpoint=s3ClientConfig.getEndPoint();

AWSCredentials credentials= newBasicAWSCredentials(accessKey, secretKey);

ClientConfiguration clientConfig= newClientConfiguration();

clientConfig.setProtocol(Protocol.HTTP);

AmazonS3 conn=AmazonS3ClientBuilder.standard()

.withClientConfiguration(clientConfig)

.withCredentials(newAWSStaticCredentialsProvider(credentials))

.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endpoint, ""))

.withPathStyleAccessEnabled(true)

.build();//检查储存空间是否创建

checkBucket(conn);

amazonClient=conn;

}returnamazonClient;

}

@Overridepublic String uploadFile(byte[] fileData, String extension) {

log.info("Storage s3 api, upload file start");//生成上传文件的随机序号

long fileId =ukid.getGeneratorID();

String fileName=Long.toString(fileId);//储存空间名

String bucketName =s3ClientConfig.getBucketName();

AmazonS3 conn=getAmazonClient();

PutObjectResult result= conn.putObject(bucketName, fileName, new Byt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值