Java 上传 aliyun OSS

Java 上传 aliyun OSS

阿里官方文档

使用RAM访问 更安全

主账号AccessKey泄露会威胁您所有资源的安全。建议使用子账号(RAM用户)AccessKey进行操作,可以有效降低AccessKey泄露的风险。

使用RAM用户访问密钥发起请求
② “Action”: [
“oss:PutObject”,
“oss:ListObjects”,
“oss:DeleteObject”
],放行权限 上传/目录/删除 权限
③ 跨域放行

 视频指导 :

Web端文件直传OSS存储空间,学生机小水管:感觉我又行了!

上传图片
public List uploadObject(MultipartFile file) throws IOException {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String Endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
        String AccessKeyId = "yourAccessKeyId";
        String AccessKeySecret = "yourAccessKeySecret";
        // 填写Bucket名称,例如examplebucket。
        String BucketName = "examplebucket";

        String originalFilename = file.getOriginalFilename();
        OSS  os = new OSSClientBuilder().build(
                Endpoint ,
                AccessKeyId ,
                AccessKeySecret );
        os.putObject(
                BucketName ,
                originalFilename,
                file.getInputStream()
        );
        os.shutdown();
        return getList();

    }
目录列表
public List getList(){
       OSS ossClient = new OSSClientBuilder().build(
                 Endpoint
                ,AccessKeyId
                ,AccessKeySecert);

        try {
            // 列举文件。如果不设置keyPrefix,则列举存储空间下的所有文件。如果设置keyPrefix,则列举包含指定前缀的文件。
            ObjectListing objectListing = ossClient.listObjects(Bucket);
            List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
            ArrayList<String> list = new ArrayList<>();
            for (OSSObjectSummary s : sums) {
//                System.out.println("\t" + s.getKey());
                list.add(s.getKey());//返回所有的链接
            }
            return list;
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        return null;
}
删除图片
public List deleteObject(String s){
//s为图片的名字
        OSS ossClient = new OSSClientBuilder().build(
                 Endpoint()
                ,AccessKeyId()
                ,AccessKeySecert());
        try {
            // 删除文件或目录。如果要删除目录,目录必须为空。
            ossClient.deleteObject(Bucket(), s);
            return this.getList();
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        return null;
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值