java oss 上传文件_java基于OSS文件上传功能

/*** oss完成文件上传

*@paramendpoint 地域节点

*@paramaccessKeyId ak id

*@paramaccessKeySecret ak密码

*@paraminputStream 要上传的文件的输入流

*@parambucketName Bucket 名字

*@parambucketDomain Bucket 域名

*@paramoriginalName 要上传的文件的原始文件名

*@return

*/

public static ResultEntityuploadFileToOss(

String endpoint,

String accessKeyId,

String accessKeySecret,

InputStream inputStream,

String bucketName,

String bucketDomain,

String originalName) {//创建OSSClient实例。

OSS ossClient = newOSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//生成上传文件的目录

String folderName = new SimpleDateFormat("yyyyMMdd").format(newDate());//生成上传文件在OSS服务器上保存时的文件名//原始文件名:beautfulgirl.jpg//生成文件名:wer234234efwer235346457dfswet346235.jpg//使用UUID生成文件主体名称

String fileMainName = UUID.randomUUID().toString().replace("-", "");//从原始文件名中获取文件扩展名

String extensionName = originalName.substring(originalName.lastIndexOf("."));//使用目录、文件主体名称、文件扩展名称拼接得到对象名称

String objectName = folderName + "/" + fileMainName +extensionName;try{//调用OSS客户端对象的方法上传文件并获取响应结果数据

PutObjectResult putObjectResult =ossClient.putObject(bucketName, objectName, inputStream);//从响应结果中获取具体响应消息

ResponseMessage responseMessage =putObjectResult.getResponse();//根据响应状态码判断请求是否成功

if(responseMessage == null) {//拼接访问刚刚上传的文件的路径

String ossFileAccessPath = bucketDomain + "/" +objectName;//当前方法返回成功

returnResultEntity.successWithData(ossFileAccessPath);

}else{//获取响应状态码

int statusCode =responseMessage.getStatusCode();//如果请求没有成功,获取错误消息

String errorMessage =responseMessage.getErrorResponseAsString();//当前方法返回失败

return ResultEntity.failed("当前响应状态码="+statusCode+" 错误消息="+errorMessage);

}

}catch(Exception e) {

e.printStackTrace();//当前方法返回失败

returnResultEntity.failed(e.getMessage());

}finally{if(ossClient != null) {//关闭O SSClient。

ossClient.shutdown();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值