引入依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.1.0</version>
</dependency>
上传文件
/**
* 上传文件
*
* @param key oss存放文件的地址
* @param path 本地要上传的文件地址
* @return
*/
public boolean uploadBomFile(String key, String path) {
boolean result = false;
// 创建OSSClient实例 三个参数分别为 Bucket所在地域对应的Endpoint,AccessKey,accessKeySecret
OSS ossClient = new OSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getAccessKeyId(), ossProperties.getAccessKeySecret());
try {
//path为本地文件路径 例如:F:\\planning-setting/new_cabinet.txt
//key为oss要存储文件的路径 例如:dhub_winner/cabinet/new_cabinet.txt
//ossProperties.getBucketName():oss上的存储空间
InputStream inputStream = new FileInputStream(path);
ossClient.putObject(ossProperties.getBucketName(), key, inputStream);
// 关闭OSSClient。
ossClient.shutdown();
result = true;
} catch (Exception ex) {
LOGGER.debug("oss_upload: " + ex);
} finally {
ossClient.shutdown();
}
return result;
}
下载文件
/**
* 下载到本地文件
*
* @param key oss文件的地址
* @param downloadFile 文件保存到的本地路径
* @return
*/
public boolean downloadFileOffer(String key,String downloadFile) {
boolean result = false;
// 创建OSSClient实例 三个参数分别为 Bucket所在地域对应的Endpoint,AccessKey,accessKeySecret
OSS ossClient = new OSSClientBuilder().build(ossWinnerProperties.getEndpoint(), ossWinnerProperties.getAccessKeyId(), ossWinnerProperties.getAccessKeySecret());
try {
// 下载object到文件
//path为本地文件路径 例如:F:\\planning-setting/new_cabinet.txt
//key为oss文件的路径 例如:dhub_winner/cabinet/new_cabinet.txt
//ossWinnerProperties.getBucketName():oss上的存储空间
ossClient.getObject(new GetObjectRequest(ossWinnerProperties.getBucketName(), key), new File(downloadFile));
// 关闭client
ossClient.shutdown();
result = true;
} catch (Exception ex) {
LOGGER.debug("oss_download: " + ex);
} finally {
ossClient.shutdown();
}
return result;
}
删除文件
/**
* 删除单个文件
*
* @param key oss文件的地址
*/
public void deleteFile(String key) {
boolean found = false;
// 创建OSSClient实例 三个参数分别为 Bucket所在地域对应的Endpoint,AccessKey,accessKeySecret
OSS ossClient = new OSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getAccessKeyId(), ossProperties.getAccessKeySecret());
try {
// 删除文件
//key为oss文件的路径 例如:dhub_winner/cabinet/new_cabinet.txt
//ossWinnerProperties.getBucketName():oss上的存储空间
ossClient.deleteObject(ossProperties.getBucketName(), key);
// 关闭client
ossClient.shutdown();
} catch (Exception ex) {
LOGGER.debug("oss_delete: " + ex);
} finally {
ossClient.shutdown();
}
}
判断文件是否存在
/**
* 判断文件是否存在
*
* @param key 文件的地址
* @return
*/
public boolean isExistFileOffer(String key) {
boolean found = false;
// 创建OSSClient实例 三个参数分别为 Bucket所在地域对应的Endpoint,AccessKey,accessKeySecret
OSS ossClient = new OSSClientBuilder().build(ossWinnerProperties.getEndpoint(), ossWinnerProperties.getAccessKeyId(), ossWinnerProperties.getAccessKeySecret());
try {
// 判断文件是否存在
//key为oss文件的路径 例如:dhub_winner/cabinet/new_cabinet.txt
//ossWinnerProperties.getBucketName():oss上的存储空间
found = ossClient.doesObjectExist(ossWinnerProperties.getBucketName(), key);
// 关闭client
ossClient.shutdown();
} catch (Exception ex) {
LOGGER.debug("oss_exist: " + ex);
} finally {
ossClient.shutdown();
}
return found;
}
拷贝文件
/**
* 拷贝文件
*
* @param key oss源文件的地址
* @param path os目标文件的地址
* @return
*/
public boolean copyFile(String key,String path) {
boolean result = false;
// 创建OSSClient实例 三个参数分别为 Bucket所在地域对应的Endpoint,AccessKey,accessKeySecret
OSS ossClient = new OSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getAccessKeyId(), ossProperties.getAccessKeySecret());
try {
//key:oss源文件的地址
//path:oss目标文件的地址
//ossWinnerProperties.getBucketName():oss上的存储空间
CopyObjectResult copyObjectResult = ossClient.copyObject(ossProperties.getBucketName(), key, ossProperties.getBucketName(), path);
// 关闭OSSClient。
ossClient.shutdown();
result = true;
} catch (Exception ex) {
LOGGER.debug("oss_copy: " + ex);
} finally {
ossClient.shutdown();
}
return result;
}
转载请注明原文出处链接地址和此声明。