开发者社区 问答 正文

java上传图片到oss,如何得到图片的访问路径呢?

通过java上传了图片,需要把图片访问地址存于数据库中,在oss后台是可以查看到路径,但是需要通过程序自动获取。


使用了GeneratePresignedUrlRequest,但是得到的url好像不是图片路径(返回的路径与oss后台的路径是不一致的)。


通过multipartUploadResult.getLocation()是返回了url地址,但这个是普通的访问地址(也就是说是公共读权限下的地址),但是我的的设置是私有权限,地址就不是在这个。


请教一下大神。
——————————————————————————————————————————————————————————————————


        File file = new File(uploadFile);
        if(!file.exists()){
            System.out.println("文件不存在");
            return;
        }
        
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        
        try {
            UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName, key);
            // 待上传的本地文件
            uploadFileRequest.setUploadFile(uploadFile);
            // 设置并发下载数,默认1
            uploadFileRequest.setTaskNum(5);
            // 设置分片大小,默认100KB
            uploadFileRequest.setPartSize(1024 * 1024 * 1);
            // 开启断点续传,默认关闭
            uploadFileRequest.setEnableCheckpoint(true);
            
            UploadFileResult uploadResult = ossClient.uploadFile(uploadFileRequest);
            
            CompleteMultipartUploadResult multipartUploadResult =
                    uploadResult.getMultipartUploadResult();
            
            //获取上传文件key的url
            GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, key, HttpMethod.GET);
            // 图片处理样式
            //String style = "image/resize,m_fixed,w_100,h_100/rotate,90";
            // 过期时间10分钟
            Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
            req.setExpiration(expiration);
            //req.setProcess(style);
            
            URL signedUrl = ossClient.generatePresignedUrl(req);
            
            System.out.println(multipartUploadResult.getETag());
            System.out.println(signedUrl);
            System.out.println(multipartUploadResult.getLocation());



展开
收起
wtb大家帮 2017-12-06 16:25:05 11939 分享 版权
1 条回答
写回答
取消 提交回答
  • 直接调用api接口?
    2017-12-07 00:25:02
    赞同 展开评论