大家好,欢迎来到IT知识分享网。
文章目录
- 一、创建OSS
-
- 1.创建Backet
- 2.查看Backet验证信息
- 二、Java中使用OSS
一、创建OSS
打开阿里云 开通OSS服务,充值几块钱。
1.创建Backet
Backet设置跨域:
然后加入Backet打开跨域设置
就好了
2.查看Backet验证信息
(1).Endpoint(地域节点):
(2).accessKeyId和accessKeySecret:
他们像是账号密码
获取方式:
- 前往RAM控制台
- 添加用户
- 点击添加权限:
- 进入用户管理:
- 创建AccessKey:
参加成功后就可以看到accessKeyId和accessKeySecret了
3.bucket就是创建的名字
二、Java中使用OSS
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 @Value("${oss.endpoint}") private String endpoint; // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 @Value("${oss.accessKeyId}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; // 填写Bucket名称,容器分组 @Value("${oss.bucketName}") private String bucketName; public ApiResult<List<Map>> ossUpdate(MultipartFile[] multipartFiles, String dir) {
// 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 默认文件夹 if (StrUtil.isBlank(dir)){
dir = "home"; } try {
List<Map> list =new ArrayList<>(); for(MultipartFile multipartFile : multipartFiles){
// 文件流 InputStream inputStream = multipartFile.getInputStream(); // 设置该属性可以返回response。如果不设置,则返回的response为空。 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); String datePath = dateFormat.format(new Date());// 日期目录:2021/10/27 // 获取文件全名 String fileName = multipartFile.getOriginalFilename(); // 获取文件后缀名 String Postfix = fileName.substring(fileName.lastIndexOf(".")); // 构建目录结构 String uuid= UUID.randomUUID().toString(); // uuid替代文件名 // 文件在oss中的储存路径 String filePath = dir+"/"+datePath+"/"+uuid+Postfix; / 上传文件 * bucketName 储存区块 * filePath oss中储存地址 * inputStream 被储存文件的文件流 */ ossClient.putObject(bucketName,filePath, inputStream); // 上传后的请求地址 String url ="https://"+bucketName+"."+endpoint+"/"+filePath; Map<String,Object> map=new HashMap<>(); map.put("url",url); // 请求地址 map.put("filePath",filePath); // oss文件存储地址 map.put("date",datePath); // 存储时间 map.put("fileName",fileName); // 上传文件原名 map.put("postfix",Postfix); // 文件后缀 list.add(map); } return ApiResult.ok(list); } catch (OSSException oe) {
System.out.println("失败1"); } catch (ClientException ce) {
System.out.println("失败2"); } catch (IOException e) {
e.printStackTrace(); } finally {
if (ossClient != null) {
ossClient.shutdown(); } } return null; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144297.html