OSS 对象存储的那些事AmazonS3简单使用

Posted liujiancheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSS 对象存储的那些事AmazonS3简单使用相关的知识,希望对你有一定的参考价值。

对象存储是根据AmazonS3来做的封装,主要功能 :文件的上传下载 生成链接 对图片的处理 查看桶内对象等一系列的操作。

本文主要做的是文件的上传下载生成链接以及前期的准备工作 以springboot项目为例。

首先先去开通官网开通对象存储服务,会给你accessKeysecretKey 两个密钥,

请求的地址也会给你 也就是网址

然后在后台创建一个桶 或者也可以代码创建,记住桶的名字,这个桶的概念相当于创建了一块属于你的存储空间,可以向里面存储

也可以去找他们客服去要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

内存的那些事

Java集合那些事

元数据性能大比拼:HDFS vs OSS vs JuiceFS

Amazon S3

使用axios上传文件到阿里云对象文件存储服务器oss