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'、'$'、'&'等。一般在英文...
java一个类可以有多个构造方法,根据传参类型和个数来匹配执行哪个构造方法。public class Member { public Member(){  ...
Java5 引入了一种主要用于数组的增强型 for 循环,类似js中的for inpublic class Member { public static void main(String[]&...
java stringBuffer(1).stringBuffer和stringBuilder区别stringBuffer是线程安全的,stringBuilder速度更快(2).简单的stringBuffer例子StringBuffer sBuffer = new&nb...
(1).创建数组double[] myList = new double[size]; //推荐创建方式 double myList[] = new double[size];  ...
(1).java获取当前日期时间Date date = new Date(); System.out.println(date.toString());输出Fri Jul 02 10:29:55 CST 2021(2).java获取时间戳秒/毫秒D...