java基于OSS文件上传功能
1.登录阿里云,点击开通对象储存功能
2.点击创建bucket
3.创建页面如下:根据自己要求勾选
4.点击此处进入:
5.可以在网页上实现文件上传下载
6.下面实现基于java的oss上传下载
6.1 点击下面按钮,设置ak
6.2 使用子用户
6.3点击创建用户,设置以下三处
创建后系统会给你提供如下:记得复制粘贴下来,保存下来,以后要用到;你退出后,系统不会帮你记录下来这个
6.4点击添加权限
我选择了这个,按需要选择:
6.5 JAVA 的oss文件上传工具类
/** * oss完成文件上传 * @param endpoint 地域节点 * @param accessKeyId ak id * @param accessKeySecret ak密码 * @param inputStream 要上传的文件的输入流 * @param bucketName Bucket 名字 * @param bucketDomain Bucket 域名 * @param originalName 要上传的文件的原始文件名 * @return */ public static ResultEntity<String> uploadFileToOss( String endpoint, String accessKeyId, String accessKeySecret, InputStream inputStream, String bucketName, String bucketDomain, String originalName) { // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 生成上传文件的目录 String folderName = new SimpleDateFormat("yyyyMMdd").format(new Date()); // 生成上传文件在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; // 当前方法返回成功 return ResultEntity.successWithData(ossFileAccessPath); } else { // 获取响应状态码 int statusCode = responseMessage.getStatusCode(); // 如果请求没有成功,获取错误消息 String errorMessage = responseMessage.getErrorResponseAsString(); // 当前方法返回失败 return ResultEntity.failed("当前响应状态码="+statusCode+" 错误消息="+errorMessage); } } catch (Exception e) { e.printStackTrace(); // 当前方法返回失败 return ResultEntity.failed(e.getMessage()); } finally { if(ossClient != null) { // 关闭O SSClient。 ossClient.shutdown(); } }
6.6. 测试类如下:
6.7 效果如下: