首先获取 ACCESS_KEYSECRET  与  ACCESS_KEYID

获取  ENDPOINT 与 ALI_DOMAIN 与 BUCKET_NAME(存储空间名称)

依赖

<!--        图片上传依赖-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>

代码

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID; /**
* 阿里云视频上传工具
*/
public class UploadVideoUtil { //阿里域名=https://+ Bucket 域名 +/
public static final String ALI_DOMAIN = "https://daanncs.com/";
//ENDPOINT = https://+ Endpoint(地域节点 外网域名)
public static final String ENDPOINT = "https://osen.alyuncs.com"; public static final String ACCESS_KEYSECRET = "6TPrPr0k9sMuOLTxH"; // TODO 修改成自己的
public static final String ACCESS_KEYID = "LTAIGtUPthEHcU"; // TODO 修改成自己的 //仓库名
public static final String BUCKET_NAME = "dnook"; // String object_Name,
public static String createOSSClient(MultipartFile multipartFile) {
Map<String, Object> map = new HashMap<>();
//生成文件名
String originalFilename = multipartFile.getOriginalFilename(); //原来的图片名
String ext = "." + FilenameUtils.getExtension(originalFilename);
String uuid = UUID.randomUUID().toString().replace("-", "");
String fileName = uuid + ext; String endpoint = ENDPOINT;
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
String accessKeyId = ACCESS_KEYID;
String accessKeySecret = ACCESS_KEYSECRET;
String bucketName = BUCKET_NAME;//仓库名 // 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String objectName = fileName;
try { ossClient.putObject(bucketName,
objectName,
multipartFile.getInputStream());
} catch (Exception e) {
e.printStackTrace();
} finally {
Date expiredTime = new Date(System.currentTimeMillis() + 3600L * 1000L);
// 关闭OSSClient。
ossClient.shutdown();
// return Result.ok().data(map);
return ALI_DOMAIN + objectName;
}
}
}

java中使用对象储存OSS的更多相关文章

  1. java中的transient关键字详解

    目录 1.何谓序列化? 2.为何要序列化? 3.序列化与transient的使用 4.java类中serialVersionUID作用 5.transient关键字小结 前言 说实话学了一段时间jav ...

  2. Java学习笔记十四:如何定义Java中的类以及使用对象的属性

    如何定义Java中的类以及使用对象的属性 一:类的重要性: 所有Java程序都以类class为组织单元: 二:什么是类: 类是模子,确定对象将会拥有的特征(属性)和行为(方法): 三:类的组成: 属性 ...

  3. java中栈内存与堆内存(JVM内存模型)

    java中栈内存与堆内存(JVM内存模型) Java中堆内存和栈内存详解1 和 Java中堆内存和栈内存详解2 都粗略讲解了栈内存和堆内存的区别,以及代码中哪些变量存储在堆中.哪些存储在栈中.内存中的 ...

  4. 多用多学之Java中的Set,List,Map

            很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...

  5. java中Map,List与Set的区别(转)

    Set,List,Map的区别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类 ...

  6. 第一弹:Java 中创建对象的4种方式

    Java 是面向对象的语言,不可避免的,"对象"这个概念是 Java 语言的核心部分,这里来简单讨论一下在 Java 中创建一般对象的方法. 总结下来有以下4种创建对象的方法: 使 ...

  7. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  8. 《java中异常和错误》

    异常和错误的区别. 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发 ...

  9. java中的static使用--静态变量、静态方法

    Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 s ...

  10. Java中的equals和hashCode方法

    本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...

随机推荐

  1. ABC318 A-G 题解

    A 枚举 \(1\sim n\) 的每个数,判断是否有 \(i-M\equiv 0\pmod P\) 即可. 赛时代码 B 暴力覆盖即可,注意 \(x,y\) 均是左开右闭. 赛时代码 C 贪心的想, ...

  2. Leetcode.402单调栈

    给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小.请你以字符串形式返回这个最小的数字. 示例 1 : 输入:num = "143221 ...

  3. openwrt ping: sendto: Network unreachable解决办法

    root@OpenWrt:/# ping zhihu.com PING zhihu.com (103.41.167.234): 56 data bytes ping: sendto: Network ...

  4. ASP.NET Core+Vue3 实现SignalR通讯

    从ASP.NET Core 3.0版本开始,SignalR的Hub已经集成到了ASP.NET Core框架中.因此,在更高版本的ASP.NET Core中,不再需要单独引用Microsoft.AspN ...

  5. Python 机器学习入门:数据集、数据类型和统计学

    机器学习是通过研究数据和统计信息使计算机学习的过程.机器学习是迈向人工智能(AI)的一步.机器学习是一个分析数据并学会预测结果的程序. 数据集 在计算机的思维中,数据集是任何数据的集合.它可以是从数组 ...

  6. Bean常用的属性

    Bean常用的属性介绍 <bean name="xxx" class="指定的bean类" scope="singleton"> ...

  7. Mac postman调分页接口,导出csv

    准备后端接口 package com.ybchen.controller; import com.ybchen.utils.JsonData; import lombok.Data; import o ...

  8. 深入理解 BigBird 的块稀疏注意力

    引言 基于 transformer 的模型已被证明对很多 NLP 任务都非常有用.然而,\(O(n^2)\) 的时间和内存复杂度 (其中 \(n\) 是序列长度) 使得在长序列 (\(n > 5 ...

  9. 基于TensorFlow 2与PaddlePaddle 2预测泰坦尼克号旅客生存概率的比较

    ​  目录 1,程序比较 2,训练过程对比: 3,训练结果对比 AI框架经过大浪淘沙之后,目前真正能够完整用于生产.科研.学术的只剩下了谷歌.脸书.百度三家的框架,本文通过一个泰坦尼克号旅客生存概率预 ...

  10. mysql--基础管理

    1.docker环境登录mysql PS C:\WINDOWS\system32> docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS P ...