码迷,mamicode.com
首页 > Web开发 > 详细

文件上传之oss服务器上传文件简笔

时间:2020-05-13 09:16:12      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:tin   index   -keep   except   public   对象   sharp   ati   info   

阿里云的oss服务器存储文件:

1.在yml配置文件中配置:阿里云oss存储配置信息

1 oss:
2   endpoint: oss-cn-xxxxxxxx.aliyuncs.com
3   accessKey: LTA....
4   accessKeySecret: LD.....
5   bucketName: xxxxxx6   staticDomain: ??

2.在配置类中读取yml里面的配置信息i

@Configuration
public class OssBootConfiguration {

    @Value("${oss.endpoint}")
    private String endpoint;
    @Value("${oss.accessKey}")
    private String accessKeyId;
    @Value("${oss.accessKeySecret}")
    private String accessKeySecret;
    @Value("${oss.bucketName}")
    private String bucketName;
    @Value("${oss.staticDomain}")
    private String staticDomain;


    @Bean
    public void initOssBootConfiguration() {
        OssBootUtil.setEndPoint(endpoint);
        OssBootUtil.setAccessKeyId(accessKeyId);
        OssBootUtil.setAccessKeySecret(accessKeySecret);
        OssBootUtil.setBucketName(bucketName);
        OssBootUtil.setStaticDomain(staticDomain);
    }
}

3.初始化oss

  private static OSSClient initOSS(String endpoint, String accessKeyId, String accessKeySecret) {
        if (ossClient == null) {
            ossClient = new OSSClient(endpoint,
                    new DefaultCredentialProvider(accessKeyId, accessKeySecret),
                    new ClientConfiguration());
        }
        return ossClient;
    }

4.上传:

       //初始化oss客户端
initOSS(endPoint, accessKeyId, accessKeySecret); StringBuilder fileUrl = new StringBuilder(); try { //对象锁 // synchronized (file) { //后缀前的数据 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(‘.‘)); //拼接文件绝对路径 String fileUrl = fileUrl.append(fileDir + fileName); PutObjectResult result = ossClient.putObject(bucketName, fileUrl, file.getInputStream()); // 设置权限(公开读) ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead); if (result != null) { System.out.println("------OSS文件上传成功------" + fileUrl); } // } } catch (IOException e) { e.printStackTrace(); return null; }

5.注意点:

考虑到是一个公共上传,若是并发调用考虑加对象锁,总体来说,要有oss服务器,先初始化oss客户端 然后生成文件路径进行上传

6.删除文件服务器上的指定目录下文件:

            //初始化容器
            initOSS(endPoint, accessKeyId, accessKeySecret);
            //删除路径
            String url = url;
            log.info("删除文件服务器上的文件路径为:{}",url);
            //删除文件服务器上的文件
            ossClient.deleteObject(bucketName, url);

7.检查是否上传成功 可以下载oss可视化工具 登录上去可以查看  上传 删除  复制文件路径等。为所欲为的人为操作

 

8.补充:

官网文档:https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.707.5a0c1bd4CT02Ig

pom文件引用:

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

或者

<!-- aliyun oss -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun.oss.version}</version>---配置在其他的地方 可以点进去查看版本 现在才知道。。。
</dependency>
 

 




文件上传之oss服务器上传文件简笔

标签:tin   index   -keep   except   public   对象   sharp   ati   info   

原文地址:https://www.cnblogs.com/wlm-boke/p/12880032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!