|
@@ -5,6 +5,7 @@ import com.aliyun.oss.OSSClientBuilder;
|
|
|
import com.aliyun.oss.model.OSSObject;
|
|
|
import com.aliyun.oss.model.OSSObjectSummary;
|
|
|
import com.aliyun.oss.model.ObjectListing;
|
|
|
+import com.aliyun.oss.model.PutObjectRequest;
|
|
|
|
|
|
import java.io.*;
|
|
|
|
|
@@ -16,16 +17,39 @@ import java.io.*;
|
|
|
public class AliyunOSSUtil {
|
|
|
|
|
|
// Endpoint以杭州为例,其它Region请按实际情况填写。
|
|
|
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
|
|
|
+ String endpoint = "http://oss-cn-beijing.aliyuncs.com";
|
|
|
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
|
|
|
- String accessKeyId = "LTAI4FiMAmo6sMB72EstodQD";
|
|
|
- String accessKeySecret = "humDP4AQmA9rvi8I8pwK28edrxEmS9";
|
|
|
- String bucketName = "temp15827479607";
|
|
|
+ String accessKeyId = "LTAI4FkSqFZa6LH9HqAsVott";
|
|
|
+ String accessKeySecret = "w7GXuh5tf1hduQuZ2AzT3a4q14BI1i";
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
+ SnowflakeIdWorker worker = SnowflakeIdWorker.me();
|
|
|
File file = new File("D:\\mybatis.jpg");
|
|
|
- AliyunOSSUtil util = new AliyunOSSUtil();
|
|
|
-// util.putObject();
|
|
|
+ String filename = file.getName();
|
|
|
+ String suffix = filename.substring(filename.indexOf("."));
|
|
|
+ System.out.println("filename: " + filename);
|
|
|
+ System.out.println("suffix: " + suffix);
|
|
|
+ AliyunOSSUtil util = AliyunOSSUtil.me();
|
|
|
+ util.putFile("temp15827479607",worker.nextId() + suffix,file);
|
|
|
+
|
|
|
+// byte[] content = "ceshi".getBytes();
|
|
|
+// util.putObject(content,"测试存储");
|
|
|
+ }
|
|
|
+
|
|
|
+ public AliyunOSSUtil() {
|
|
|
+ }
|
|
|
+
|
|
|
+ public AliyunOSSUtil(String endpoint, String accessKeyId, String accessKeySecret) {
|
|
|
+ this.endpoint = endpoint;
|
|
|
+ this.accessKeyId = accessKeyId;
|
|
|
+ this.accessKeySecret = accessKeySecret;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static AliyunOSSUtil me(){
|
|
|
+ return new AliyunOSSUtil();
|
|
|
+ }
|
|
|
+ public static AliyunOSSUtil me(String endpoint,String accessKeyId, String accessKeySecret){
|
|
|
+ return new AliyunOSSUtil(endpoint,accessKeyId,accessKeySecret);
|
|
|
}
|
|
|
/**
|
|
|
* @param
|
|
@@ -34,7 +58,7 @@ public class AliyunOSSUtil {
|
|
|
* 存储空间是OSS全局命名空间,相当于数据的容器,可以存储若干文件。 以下代码用于新建一个存储空间
|
|
|
* @date 2019/11/29 10:30
|
|
|
*/
|
|
|
- public void createBucket() {
|
|
|
+ public void createBucket(String bucketName) {
|
|
|
// 创建OSSClient实例。
|
|
|
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
|
|
// 创建存储空间。
|
|
@@ -49,7 +73,7 @@ public class AliyunOSSUtil {
|
|
|
* @description 上传文件,上传文件至OSS
|
|
|
* @date 2019/11/29 10:31
|
|
|
*/
|
|
|
- public void putObject(byte[] content,String objectName) {
|
|
|
+ public void putObject(String bucketName,byte[] content,String objectName) {
|
|
|
// <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
|
|
|
|
|
|
// 创建OSSClient实例。
|
|
@@ -66,7 +90,7 @@ public class AliyunOSSUtil {
|
|
|
* @description 下载文件,获取文件的文本内容
|
|
|
* @date 2019/11/29 10:32
|
|
|
*/
|
|
|
- public void getObject(String objectName) throws Exception {
|
|
|
+ public void getObject(String bucketName,String objectName) throws Exception {
|
|
|
// <yourObjectName>从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
|
|
|
|
|
|
// 创建OSSClient实例。
|
|
@@ -96,7 +120,7 @@ public class AliyunOSSUtil {
|
|
|
* @description 列举文件:列举指定存储空间下的文件。默认列举100个文件
|
|
|
* @date 2019/11/29 10:38
|
|
|
*/
|
|
|
- public void listObjects() {
|
|
|
+ public void listObjects(String bucketName) {
|
|
|
// 创建OSSClient实例。
|
|
|
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
|
|
|
|
@@ -117,7 +141,7 @@ public class AliyunOSSUtil {
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
|
- public void deleteObject(String objectName){
|
|
|
+ public void deleteObject(String bucketName,String objectName){
|
|
|
// <yourObjectName>表示删除OSS文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
|
|
|
|
|
|
// 创建OSSClient实例。
|
|
@@ -129,4 +153,25 @@ public class AliyunOSSUtil {
|
|
|
// 关闭OSSClient。
|
|
|
ossClient.shutdown();
|
|
|
}
|
|
|
+
|
|
|
+ public void putFile(String bucketName,String objectName,File file){
|
|
|
+ // 创建OSSClient实例。
|
|
|
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
|
|
+
|
|
|
+
|
|
|
+ // 创建PutObjectRequest对象。
|
|
|
+ PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, file);
|
|
|
+
|
|
|
+ // 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。
|
|
|
+ // ObjectMetadata metadata = new ObjectMetadata();
|
|
|
+ // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
|
|
|
+ // metadata.setObjectAcl(CannedAccessControlList.Private);
|
|
|
+ // putObjectRequest.setMetadata(metadata);
|
|
|
+
|
|
|
+ // 上传文件。
|
|
|
+ ossClient.putObject(putObjectRequest);
|
|
|
+
|
|
|
+ // 关闭OSSClient。
|
|
|
+ ossClient.shutdown();
|
|
|
+ }
|
|
|
}
|