public class OSSClientUtil {
//填入相应字符串
private static String endpoint = "";
private static String accessKeyId = "";
private static String accessKeySecret = "";
private static String bucketName = "";
public static String getEndpoint() {
return endpoint;
}
public static void setEndpoint(String endpoint) {
OSSClientUtil.endpoint = endpoint;
}
public static String getAccessKeyId() {
return accessKeyId;
}
public static void setAccessKeyId(String accessKeyId) {
OSSClientUtil.accessKeyId = accessKeyId;
}
public static String getAccessKeySecret() {
return accessKeySecret;
}
public static void setAccessKeySecret(String accessKeySecret) {
OSSClientUtil.accessKeySecret = accessKeySecret;
}
public static String getBucketName() {
return bucketName;
}
public static void setBucketName(String bucketName) {
OSSClientUtil.bucketName = bucketName;
}
}
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.List;
import java.util.Objects;
public class FileLoadUtil {
public static void upLoadFileToALiyun(String myKey, File file) throws IOException {
//multipartfile转file
// File file = null;
// if(multipartFile.equals("")||multipartFile.getSize()<=0){
// multipartFile = null;
// }else{
// InputStream ins = multipartFile.getInputStream();
// file = new File(Objects.requireNonNull(multipartFile.getOriginalFilename()));
// inputStreamToFile(ins, file);
// }
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
// 创建上传Object的Metadata
ObjectMetadata meta = new ObjectMetadata();
// 设置上传内容类型docx
//meta.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
meta.setContentType("text/xml");
// 设置上传文件长度
assert file != null;
meta.setContentLength(file.length());
// 上传文件
try {
PutObjectResult m_Result = ossClient.putObject(OSSClientUtil.getBucketName(), myKey, file, meta);
System.out.println(m_Result.getETag());
} catch (OSSException oe) {
oe.printStackTrace();
throw new OSSException();
} catch (ClientException ce) {
ce.printStackTrace();
throw new ClientException();
} catch (Exception e) {
e.printStackTrace();
} finally {
ossClient.shutdown();// 关闭client
File del = new File(file.toURI());
del.delete();
}
}
/**
* 文件下载
*
* @param myKey
* @param tempFileName 要下载的文件名
* @throws Exception
*/
public static void downloadFileFromALiyun(String myKey, String tempFileName) throws Exception {
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
InputStream inputStream = null;
// 下载object到文件
try {
OSSObject ossObject = ossClient.getObject(new GetObjectRequest(OSSClientUtil.getBucketName(), myKey));
inputStream = ossObject.getObjectContent();
String newStr = new String(tempFileName.getBytes(), "UTF-8");
File f = new File(newStr);
FileUtils.copyInputStreamToFile(inputStream, f);
} catch (OSSException oe) {
oe.printStackTrace();
throw new Exception(oe.getErrorMessage());
} catch (ClientException ce) {
ce.printStackTrace();
throw new Exception(ce.getErrorMessage());
} catch (Exception e) {
e.printStackTrace();
throw new Exception(e.getMessage());
} finally {
ossClient.shutdown();// 关闭client
inputStream.close();
}
}
public static void queryObject() {
// 创建OSSClient实例
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
try {
// 要查找的文件
ObjectListing objectListing = ossClient.listObjects(OSSClientUtil.getBucketName(), "yourObjectKey/");
List<OSSObjectSummary> objectSummary = objectListing.getObjectSummaries();
System.out.println("您有以下Object:");
for (OSSObjectSummary object : objectSummary) {
System.out.println("\t" + object.getKey());
}
} catch (Exception ce) {
ce.printStackTrace();
} finally {
ossClient.shutdown();// 关闭client
}
}
public static void deleteSingleObect(String myKey) {
//创建OSSClient实例
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
try {
ossClient.deleteObject(OSSClientUtil.getBucketName(), myKey);
} catch (Exception ce) {
ce.printStackTrace();
} finally {
ossClient.shutdown();// 关闭client
}
}
public static void deleteBatchObect(List<String> keys) {
// 删除Object。详细请参看“SDK手册 > Java-SDK > 管理文件”。
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
try {
// 删除Objects
DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(OSSClientUtil.getBucketName()).withKeys(keys));
List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
} catch (Exception ce) {
ce.printStackTrace();
} finally {
ossClient.shutdown();// 关闭client
}
}
public static boolean doesObjectExist(String myKey) {
OSSClient ossClient = new OSSClient(OSSClientUtil.getEndpoint(), OSSClientUtil.getAccessKeyId(), OSSClientUtil.getAccessKeySecret());
boolean found = false;
try {
found = ossClient.doesObjectExist(OSSClientUtil.getBucketName(), myKey);
} catch (Exception ce) {
ce.printStackTrace();
} finally {
ossClient.shutdown();// 关闭client
}
return found;
}
public static void inputStreamToFile(InputStream ins,File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}