阿里云OSS对象存储上传文件以及获取下载链接的策略

网友投稿 2423 2022-11-19

阿里云OSS对象存储上传文件以及获取-链接的策略

阿里云OSS对象存储上传文件以及获取-链接的策略

基本策略如下:

把上传文件保存到服务器,传输服务器上的文件到OSSBucket,获取上传文件的-链接,然后删除服务器上临时存储的文件

代码

###工具类:

package cn.hcnet2006.blog.hcnetwebsite.util;import com.aliyun.oss.ClientException;import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.aliyun.oss.OSSException;import com.aliyun.oss.model.CannedAccessControlList;import com.aliyun.oss.model.CreateBucketRequest;import com.aliyun.oss.model.PutObjectResult;import org.springframework.beans.factory.annotation.Autowired;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;/** * OSS文件上传 */public class OSSUtils { @Autowired //private static OSSConstant ossConstant; static String bucketName = "hcnXXX-apk"; static String accessKeyId = "LTAI4FXXXXXXucSR5AX"; static String accessKeySecret = "yuYPXXXXXXX---lV0MBUaWjLdC"; static String endpoint = "oss-cn-shenzhen.aliyuncs.com"; private static OSS ossClient ; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); public static String upload(File file,String apkName){ ossClient = new OSSClientBuilder().build(endpoint,accessKeyId, accessKeySecret); System.out.println("accessKeyId2:"+accessKeyId); if(file == null){ return null; } String dateStr = sdf.format(new Date()); try{ //容器不存在就创建 if(!ossClient.doesBucketExist(bucketName)){ ossClient.createBucket(bucketName); CreateBucketRequest cbr = new CreateBucketRequest(bucketName); cbr.setCannedACL( CannedAccessControlList.Private ); ossClient.createBucket(cbr); } //上传文件 InputStream is = new FileInputStream(file); PutObjectResult result = ossClient.putObject(bucketName,apkName,file); //System.out.println(result.getRequestId()); // String uri = result.getResponse().getUri(); // 设置这个文件地址的有效时间 Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10); //返回上传文件-路径 String url = ossClient.generatePresignedUrl(bucketName, apkName, expiration).toString(); //去掉加密信息,因为已经开放了读权限 System.out.println("object:"+apkName+"存入成功"); System.out.println("上传路径:"+url); url = url.substring(0,url.indexOf("?")); return url; }catch (OSSException oe){ oe.printStackTrace(); }catch (ClientException | FileNotFoundException ce){ ce.printStackTrace(); }finally{ ossClient.shutdown(); } return null; }}

##Controller逻辑类

{ //转义文件到服务器 uploadFile.transferTo(folder); //从服务器获取文件传递到阿里云OSS.返回-链接地址 String avator_url = OSSUtils.upload(folder,sysUser.getName()+".jpg"); //删除服务器缓存文件 folder.delete();

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:官网关于Mysql数据库中间表的修改方法
下一篇:Appium服务器初始化参数(Capability)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~