package com.benbenedu.sundial.delivery.utils;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.net.URL;
import java.util.Date;
public class OSSUtil {
@Getter
@Setter
private String bucketName;
@Getter
@Setter
private String endpoint;
@Getter
@Setter
private String accessKeyId;
@Getter
@Setter
private String accessKeySecret;
OSSClient ossClient;
OSSClient ossClient2;
public OSSUtil(String bucketName, String endpoint,
String accessKeyId, String accessKeySecret) {
this.bucketName = bucketName;
this.endpoint = endpoint;
this.accessKeyId = accessKeyId;
this.accessKeySecret = accessKeySecret;
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
ossClient2 = new OSSClient(endpoint, accessKeyId, accessKeySecret);
}
//文件上传2
public void uploadFile(File file, String path, String key, String type) throws FileNotFoundException {
ObjectMetadata meta = new ObjectMetadata();
meta.setContentType(type);
meta.setContentEncoding("utf-8");
PutObjectResult putObjectResult = ossClient.putObject(bucketName, path+key, file,meta);
// 关闭client
ossClient.shutdown();
}
//文件流上传1
public String uploadFileByByte(byte[] content, String path, String key){
// 上传文件流
ossClient.putObject(bucketName, path+key, new ByteArrayInputStream(content));
String url = getUrl(ossClient, path, key);
//String url = "http://"+endpoint+"/"+path+key;
//System.out.println(url);
// 关闭client
ossClient.shutdown();
return url;
}
//文件流上传2
public String uploadFileByByte(byte[] content, String path, String key, String type){
// 上传文件流
ObjectMetadata meta = new ObjectMetadata();
meta.setContentType(type);
meta.setContentEncoding("utf-8");
ossClient.putObject(bucketName, path+key, new ByteArrayInputStream(content),meta);
String url = getUrl(ossClient, path, key);
//ossClient.shutdown();
return url;
}
// 删除文件
public void deleteFile(String key ){
// 删除Object
ossClient.deleteObject(bucketName, key);
// 关闭client
ossClient.shutdown();
}
//获取存储对象的名字
public void listObject(){
// 获取指定bucket下的所有Object信息
ObjectListing listing = ossClient.listObjects(bucketName);
// 遍历所有Object
for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
System.out.println(objectSummary.getKey());
}
}
//判断是否存在
public void judgeFile(String key){
boolean found = ossClient.doesObjectExist(bucketName, key);
System.out.println(found);
// 关闭client
ossClient.shutdown();
}
/**
* 下载文件
* key oss上文件(如果文件有后缀,也要带后缀)
* filePath 本地文件存放地址(包含文件名)
*/
public void getFile(String key,String filePath){
ossClient.getObject(new GetObjectRequest(bucketName, key), new File(filePath));
// 关闭client
ossClient.shutdown();
}
//获得url链接
public String getUrl(OSSClient ossClient, String path, String key) {
// 设置URL过期时间为100年 3600l* 1000*24*365*100
Date expiration = new Date(System.currentTimeMillis() + (3600L * 1000 * 24 * 365 * 100));
// 生成URL
URL url = ossClient.generatePresignedUrl(bucketName, path+key, expiration);
if (url != null) {
return url.toString();;
}
return null;
}
//获得url链接
public String getUrl(OSSClient ossClient, String key) {
// 生成URL
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, key);
URL url = ossClient.generatePresignedUrl(request);
if (url != null) {
return url.toString();
}
return null;
}
}
java OSS 工具类
最新推荐文章于 2024-07-26 22:05:49 发布