文件上传下载 oss

文件上传下载 oss

什么是阿里云OSS
阿里云对象存储(Alibaba Cloud Object Storage Service,简称OSS)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过简单的API接口在任何时间、任何地点上传和下载数据,适用于图像、音视频、文档、网站等各种类型的数据存储和分发场景。

阿里云OSS的优点
高可靠性:OSS采用了多副本存储和容灾备份机制,确保数据的高可靠性和持久性。
安全性:支持多种安全策略,如访问控制、加密传输等,保障数据的安全性。
弹性扩展:支持按需存储和弹性扩展,用户可以根据实际需求灵活调整存储容量。
低成本:OSS的存储费用低廉,且支持按量付费模式,使用户能够根据实际使用量付费

controller层:

// An highlighted block
@Data
@RestController
@RequestMapping("/sys/oss")
public class OssController {

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

    /**
     * 文件上传
     *
     * @param bytes   :传入的文件要转为byte[]
     * @param newName :表示在oss中存储的文件名字。
     */
    @PostMapping("/import")
    public String upload1(@RequestParam MultipartFile file) throws IOException {
        byte[] bytes=file.getBytes();
        String originalFilename = file.getOriginalFilename();
        String type = FileUtil.extName(originalFilename);
        String uuid = IdUtil.fastSimpleUUID();
        String fileUUID = uuid + StrUtil.DOT + type;
        System.out.println(bytes+"hndshv");
        OSS ossClient = new OSSClientBuilder().build(this.endpoint, this.accessKeyId, this.accessKeySecret);
        try {
            // 创建PutObject请求。
            ossClient.putObject(this.bucketName, fileUUID, new ByteArrayInputStream(bytes));
        } catch (Exception oe) {
            oe.printStackTrace();
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }


        //文件访问路径规则 https://BucketName.Endpoint/ObjectName
        StringBuilder stringBuilder = new StringBuilder("https://");
        stringBuilder
                .append(bucketName)
                .append(".")
                .append(endpoint)
                .append("/")
                .append(fileUUID);

        String url=stringBuilder.toString();
        return url;
    }
}

application.yml

# 阿里云oss
aliyun:
  oss:
    endpoint: "自己的阿里云endpoint"
    accessKeyId: "自己的阿里云accessKeyId"
    accessKeySecret: "自己的阿里云accessKeySecret"
    bucketName: "自己的阿里云bucketName"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值