阿里云SSO存储

1.相关依赖

<dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
</dependency>

2.配置类

@Configuration
@ConfigurationProperties(prefix = "ali-yun-sso")
@Data
public class AliYunSsoFileConfig {

    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
    private String filePath;
    private String downLoadDomain;


    @Bean
    public OSS ossClient(){
        DefaultCredentialProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret);
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        return ossClient;
    }


}

3.下载上传接口

1.上传入参格式
 List<MultipartFile> files  批量上传
MultipartHttpServletRequest request 可以携带其他参数类型
List<MultipartFile> files = request.getFiles("files");
ossClient.putObject(bucketName,objectName, file.getInputStream());
为防止上传相同文件出现覆盖现象 可以生成时间戳来区分相同文件

2.下载 自带下载临时链接 不能满足永久下载链接
String fileName, HttpServletResponse response
 try (
                OSSObject ossObject = ossClient.getObject(bucketName, objectName);
                InputStream content = ossObject.getObjectContent();
                ServletOutputStream outputStream = response.getOutputStream();
        ) {
            if (content != null) {
                int ch;
                byte[] buffer = new byte[10240];
                while ((ch = content.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, ch);
                }
                outputStream.flush();
                content.close();
            }

 

posted @ 2024-06-28 18:02  D·Felix  阅读(20)  评论(0)    收藏  举报