开通OSS : 右上角控制台 -> 搜索 -> OSS
创建Bucket
创建子用户 : 勾选API那个框
https://ram.console.aliyun.com/users
添加依赖 : Jdk9好像还需要添加更多依赖,懒得写
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
需要填写的参数
@Value("${reggie.imgDownPath}")
String imgPath;
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
@Value("${ali.endpoint}")
String endpoint;
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
@Value("${ali.accessKeyId}")
String accessKeyId;
@Value("${ali.accessKeySecret}")
String accessKeySecret;
// 填写Bucket名称,例如examplebucket。
@Value("${ali.bucketName}")
String bucketName;
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
// String objectName = "exampledir/exampleobject.txt"; Bucket中的存储路径
@Value("${ali.objDir}")
String objDir;
上传代码参考
public void uploadImg(File file){
String objectName = objDir + file.getName();
log.error(objectName);
// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
// String filePath = "D:\\localpath\\examplefile.txt";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 创建PutObjectRequest对象。
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, file);
// 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。
ObjectMetadata metadata = new ObjectMetadata();
metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
metadata.setObjectAcl(CannedAccessControlList.PublicRead);
putObjectRequest.setMetadata(metadata);
// 上传文件。
PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
// System.out.println("!!!!!!!!!!!!!" + putObjectResult.getETag());
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
下载
直接访问url,去文件管理看文件的【详情】,url是有规律的,后缀就是文件名,前面都是写死的。
- 参考了其他的文章,做了简化,此Blog主要用于以后自己查看