OSS的java简单使用

申请OSS

第一步是我们需要去阿里云的空间申请oss的使用空间
在这里插入图片描述
这里是创建自己的bucket,选择离自己靠近的地域点,原理上访问会加快。

获取id和key

这里点击头像的获取key
在这里插入图片描述

这里为了安全我们可以使用阿里云推荐的子账户来赋予权限,避免权限的泄露。

创建用户

在这里插入图片描述
这里可以随意的命名账户登录信息,是为了给分配的人员进RAm方式进行登录的

权限赋予

在这里插入图片描述
在这里插入图片描述
这里可以给两个,一个是管理oss的 AliyunOSSFullAccess,一个为监AliyunCloudMonitorFullAccess,

key生成

在这里插入图片描述
点击用户信息中的创建key,之后进行验证后会弹出key记载下来就好。

参数连接

  上面我们是一件建立好了oss的id和key,下面我们需要进行参数的配置

在这里插入图片描述
这边呢是我们需要的一些参数,第一个参数是我的域名
在这里插入图片描述
第二个是我们选的地域节点的point值
这个值我们需要对应,文档在 https://helpcdn.aliyun.com/document_detail/31837.htm?spm=a2c4g.11186623.2.4.bd2e53383V0RGV#concept-zt4-cvy-5db中,这个也是阿里的oss技术参考文档。
在这里插入图片描述
id和key则为我们刚才的用户id和key
其中的prefix则相当于文件路径
bucketName则是当前的bucke节点

代码实现


import java.util.UUID;

/**
 * @Author: zqy
 * @Date: 2019/8/21 18:43
 */
@Service
@Slf4j
public class AliyunOssServiceImpl implements AliyunOssService {

    private OSSClient client;

    @Value("${aliyun.oss.domain}")
    private String aliyunDomain;
    @Value("${aliyun.oss.endPoint}")
    private String aliyunEndPoint;
    @Value("${aliyun.oss.accessKeyId}")
    private String aliyunAccessKeyId;
    @Value("${aliyun.oss.accessKeySecret}")
    private String aliyunAccessKeySecret;
    @Value("${aliyun.oss.prefix}")
    private String aliyunPrefix;
    @Value("${aliyun.oss.bucketName}")
    private String aliyunBucketName;

   // 这边进行初始化的连接
    @PostConstruct
    public void init() {
        client = new OSSClient(aliyunEndPoint, aliyunAccessKeyId, aliyunAccessKeySecret);
    }

// 这边的data是文件的二进制流
    @Override
    public String uploadSuffix(byte[] , String suffix) {
    // 更新路径,这边如果oss不存在会自动生成
        return upload(data, getPath(aliyunPrefix, suffix));
    }

  
    /**
     * 删除文件
     * @param url
     * @return
     */
    @Override
    public void deleteFile(String url) {
        try {
        //aliyunBucketName指的是节点,url则不能包含节点
       /* 如https://liu123-test.oss-cn-shanghai.aliyuncs.com/testdev/20210816/cbc161d17f8c45269d5393513e99159b.mp4需要删除的话需要testdev/20210816/cbc161d17f8c45269d5393513e99159b.mp这样就行
       */
            client.deleteObject(aliyunBucketName, url);;
        } catch (Exception e){
            e.printStackTrace();
            throw new FileException(ErrorCodeFile.ERROR_FILE_UPLOAD);
        }
    }
    /**
     * 文件路径
     * @param prefix 前缀
     * @param suffix 后缀
     * @return 返回上传路径
     */
    public String getPath(String prefix, String suffix) {
        //生成uuid
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        //文件路径
        String path = new SimpleDateFormat("yyyyMMdd").format(new Date()) + "/" + uuid;

        if(StringUtils.isNotBlank(prefix)){
            path = prefix + "/" + path;
        }
        return path + suffix;
    }
}

我这个没有进行关闭,单个的话需要进行关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值