目录
一、阿里云对象存储OSS,图片上传工具类
1. 工具类
如果不知道如何获取AccessKeyId和AccessKeySecret 可参考以下文章。
参考文章:开通OSS服务,搭建OSS环境
【阿里云】阿里云OSS对象存储— 开通OSS服务、搭建OSS环境、快速入门
//对象存储OSS
public class AliCloud_OSS {
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
private static String accessKeyId = "自己的accessKeyId";
private static String accessKeySecret = "自己的accessKeySecret";
private static String bucketName = "自己的bucketName";
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
private static String endpoint = "自己的endpoint";
/**
* 文件上传
* 1:文件名称
* 2:输入流
*/
public static String upload(String filename, InputStream is) {
//3、拼写图片路径
filename = new SimpleDateFormat("yyyy-MM-dd").format(new Date())
+ "/" + UUID.randomUUID().toString() + filename.substring(filename.lastIndexOf("."));
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 填写Byte数组。
// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
ossClient.putObject(bucketName, filename, is);
// 关闭OSSClient。
ossClient.shutdown();
//返回云上图片存储路径
String url = "https://"+bucketName+"."+endpoint+"/" + filename;
return url;
}
}
2. 测试类
@Test
public void testOss() throws FileNotFoundException {
//本地图片的全路径
String path = "D:\\z1_img\\CSDN\\路飞.png";
FileInputStream inputStream = new FileInputStream(new File(path));
String url = AliCloud_OSS.upload(path, inputStream);
//返回云上存储的图片路径
System.out.println(url);
}