上传1
// 域名网点
private static final String endpoint="oss-cn-xxx.aliyuncs.com";
// 阿里云的 accessKeyId
private static final String accessKeyId="LTAI4GxxxLkdx3wkxxx99xx";
// 阿里云的 accessKeySecret
private static final String accessKeySecret="BxxxGq0xxxHrdi0pxxxq3HruB";
// bucket的name名
private static final String bucketName="lizq-123";
// 保存的”目录名“
private static final String objectName="test1";
public String upload(@RequestParam("file")MultipartFile multipartFile) throws Exception {
// 得到file上传文件名的尾缀
String FileType = multipartFile.getOriginalFilename().substring(
multipartFile.getOriginalFilename().lastIndexOf("."), multipartFile.getOriginalFilename().length());
// 新文件名
String fileName = UUID.randomUUID().toString().replace("-", "") + FileType;
// 获得当前账户电脑的 系统名
String osName = System.getProperty("os.name");
String filePath = "";
if (osName.startsWith("Win")) { //判断电脑系统
filePath = "D:/";
} else {
filePath = "/tmp/";
}
File tempFile = new File(filePath);
if (!tempFile.exists()) {
tempFile.mkdirs();
}
// D:/ 文件
File destFile = new File(filePath + fileName);
multipartFile.transferTo(destFile);// 下载到本地
//定义上传到服务器的OSS 域名、服务器的keyid和secret
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 上传流 yourBucketName、yourObjectName、需要上传的本地文件
PutObjectRequest putObjectRequest =
new PutObjectRequest(bucketName, objectName, destFile);
// 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
// ObjectMetadata metadata = new ObjectMetadata();
// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS,StorageClass.Standard.toString());
// metadata.setObjectAcl(CannedAccessControlList.Private);
// putObjectRequest.setMetadata(metadata);
// 上传服务器
ossClient.putObject(putObjectRequest);
// 关闭流
ossClient.shutdown();
// 删除本地文件
destFile.delete();
return "11111111";
}
上传2(流)
public String upload(@RequestParam("file")MultipartFile multipartFile) throws Exception {
// file上传文件名
String fileName = multipartFile.getOriginalFilename();
//定义上传到服务器的OSS 域名、服务器的keyid和secret
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 上传流 yourBucketName、yourObjectName、需要上传的本地文件
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, multipartFile.getInputStream());
int filesize = 10000*1024*10; // 1kb * 1024 *10 = 10MB
// 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
// ObjectMetadata metadata = new ObjectMetadata();
// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS,StorageClass.Standard.toString());
// metadata.setObjectAcl(CannedAccessControlList.Private);
// putObjectRequest.setMetadata(metadata);
// 上传服务器
ossClient.putObject(putObjectRequest);
// 关闭流
ossClient.shutdown();
return "11111111";
}
下载
@PostMapping("download")
@ResponseBody
public static void download(String fileName) {
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 下载区分系统(window、linux)
// 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。
ossClient.getObject(new GetObjectRequest(bucketName, objectName),new File("D:\\aaaaaa"));
// 关闭OSSClient。
ossClient.shutdown();
}