maven坐标地址
<dependency> <groupId>com.upyun</groupId> <artifactId>java-sdk</artifactId> <version>4.2.3</version> </dependency>
上代码
// 获取文件流hash
InputStream inputStream = file.getInputStream();
String fileHash = DigestUtils.md5DigestAsHex(inputStream).toLowerCase();
// 初始化sdk
RestManager manager = new RestManager("image-learn-app-avatar", "a392223903", "kqoyJ4kp37IXdDzzqCYHdn3m8ty6q0pxnzvhx1");
manager.setTimeout(60);
// 根据hash生成二级目录
String filePath1 = fileHash.substring(0, 2);
String filePath2 = fileHash.substring(2, 4);
// 创建所需的文件二级目录
String path = File.separator + app + File.separator + filePath1 + File.separator + filePath2 + File.separator;
try {
System.out.println(path);
Response result = manager.mkDir(path);
if (!result.isSuccessful()) {
throw new BusinessException("创建目录失败,错误码" + result.code());
}
} catch (UpException e) {
throw new BusinessException("创建目录失败:" + e.getMessage());
}
// 填充完整文件名称
String fillName = fileHash + "." + getExtensionByContentType(file.getContentType());
String fillPath = path + File.separator + fillName;
// 上传文件
Map<String, String> params = new HashMap<String, String>();
try (Response result = manager.writeFile(fillPath, file.getInputStream(), params)) {
if (!result.isSuccessful()) {
throw new BusinessException("上传文件失败,错误码" + result.code());
}
} catch (UpException e) {
throw new BusinessException("上传文件失败:" + e.getMessage());
}字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。一般在英文...
public class test { public static void main(String[] args) { &...
java一个类可以有多个构造方法,根据传参类型和个数来匹配执行哪个构造方法。public class Member { public Member(){  ...
java限制1个方法同一时间只能被一个线程访问public synchronized void setOrderPay(){ }加上synchronized 修饰符即可...
在java中字符串属于对象,刚开始我就疑惑为什么int char等类型都是小写,结果String是大写,java太反人类,后来才知道String是对象。(1).java创建字符串String text = "net"; String tex...
(1).java获取当前日期时间Date date = new Date(); System.out.println(date.toString());输出Fri Jul 02 10:29:55 CST 2021(2).java获取时间戳秒/毫秒D...