我使用过的 腾讯云 和 七牛云 的对象存储服务中,都有 key 这样一个概念,key 表示的是 文件的路径+文件名称:
key = 2022/09/06/图片.jpg
表示路径为 2022/09/06,文件名为 图片.jpg
所以这里设计一个 根据日期为路径,uuid为文件名生成文件路径 的工具类:
package com.android.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
public class PathUtils {
public static String generateFilePath(String fileName) {
// 根据日期生成路径——2022/09/06/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
String datePath = sdf.format(new Date());
// uuid作为文件名,并替换掉其中的 “-”
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
// 后缀名和文件后缀一样
int index = fileName.lastIndexOf(".");
// test.jpg -> .jpg
// test.png -> .png
String fileType = fileName.substring(index);
// 拼接cos中的文件路径
String filePath = new StringBuilder().append(datePath).append(uuid).append(fileType).toString();
System.out.println(filePath);
return filePath;
}
}
可以直接 copy 使用哦