OSS 对象存储的那些事AmazonS3简单使用
Posted liujiancheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSS 对象存储的那些事AmazonS3简单使用相关的知识,希望对你有一定的参考价值。
对象存储是根据AmazonS3来做的封装,主要功能 :文件的上传下载 生成链接 对图片的处理 查看桶内对象等一系列的操作。
本文主要做的是文件的上传下载生成链接以及前期的准备工作 以springboot项目为例。
首先先去开通官网开通对象存储服务,会给你accessKey 和 secretKey 两个密钥,
请求的地址也会给你 也就是网址
然后在后台创建一个桶 或者也可以代码创建,记住桶的名字,这个桶的概念相当于创建了一块属于你的存储空间,可以向里面存储
也可以去找他们客服去要sdk
拿到jar包引入到springboot项目中
在src同级目录创建libs文件夹
点击设置 假如libs文件夹
配置pom
<dependency>
<groupId>speedycloud</groupId>
<artifactId>speedycloud
-sdk-mns</artifactId>
<version>1.1.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/speedycloud
-sdk-mns-1.1.8.jar</systemPath>
</dependency>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
允许打包
如果是是私服maven的话可以省略这两部 直接上传jar到maven
建立连接
private static synchronized AmazonS3 s3Client() {
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setSignerOverride("S3SignerType");//凭证验证方式
clientConfig.setProtocol(Protocol.HTTP);//访问协议
return AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withClientConfiguration(clientConfig)
.withEndpointConfiguration(
new AwsClientBuilder.EndpointConfiguration(//设置要用于请求的端点配置(服务端点和签名区域)
speedyURL,//我的网址
(Regions.CN_NORTH_1).toString())).withPathStyleAccessEnabled(true)//是否使用路径方式
.build();
}
s3Client().putObject(new PutObjectRequest(bucket,"ppo"+Thread.currentThread().getName(),file));
上传文件
可以以文件的方式和流的方式上传 以流的方式上传注意设置datamate 的上传报文如上传pdf文件
metadata.setContentType(“application/pdf”);
URL objectUrl = s3Client().generatePresignedUrl(new GeneratePresignedUrlRequest(BUCKET_NAME, key));
返回文件连接
S3Object object = s3Client().getObject(new GetObjectRequest(BUCKET_NAME, key));
下载文件(流)
所有的创建连接都是线程不安全的 注意并发问题
结束
以上是关于OSS 对象存储的那些事AmazonS3简单使用的主要内容,如果未能解决你的问题,请参考以下文章
元数据性能大比拼:HDFS vs OSS vs JuiceFS