package com.stylefeng.guns.modular.system.utils;
|
|
import com.amazonaws.AmazonServiceException;
|
import com.amazonaws.auth.AWSStaticCredentialsProvider;
|
import com.amazonaws.auth.BasicAWSCredentials;
|
import com.amazonaws.regions.Regions;
|
import com.amazonaws.services.s3.AmazonS3;
|
import com.amazonaws.services.s3.AmazonS3Client;
|
import com.amazonaws.services.s3.model.*;
|
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class UploadUtil {
|
private static String access_key_id = "AKIARXDMFH3VPKPIBFNR";
|
private static String secret_key_id = "Atb2v2qBbbqp52n1hLtrMBs19ohGRBUE/xZAuR6N";
|
private static String bucket_name = "ccaawsbucket";
|
private static AmazonS3 s3Client;
|
private static List<String> object_list = new ArrayList<>();
|
static {
|
//通过sdk创建与S3的链接
|
BasicAWSCredentials awsCredentials = new BasicAWSCredentials(access_key_id, secret_key_id);
|
//默认地区新加坡
|
s3Client = AmazonS3Client.builder()
|
.withRegion(Regions.US_WEST_1)//可以根据自己的需求进行选择
|
.withCredentials(new AWSStaticCredentialsProvider(awsCredentials))
|
.build();
|
|
}
|
|
|
//创建桶
|
public static Bucket createBucket() {
|
Bucket b = null;
|
if (s3Client.doesBucketExistV2(bucket_name)) {
|
System.out.format("Bucket %s already exists.\n", bucket_name);
|
b = getBucket(bucket_name);
|
} else {
|
try {
|
b = s3Client.createBucket(bucket_name);
|
} catch (AmazonS3Exception e) {
|
System.err.println(e.getErrorMessage());
|
}
|
}
|
return b;
|
}
|
|
//获取桶
|
public static Bucket getBucket(String bucket_name) {
|
Bucket named_bucket = null;
|
List<Bucket> buckets = s3Client.listBuckets();
|
for (Bucket b : buckets) {
|
System.err.println(b.getName());
|
if (b.getName().equals(bucket_name)) {
|
named_bucket = b;
|
}
|
}
|
return named_bucket;
|
}
|
|
//上传文件到桶
|
public static String PutObject(String key_name,File file){
|
// String key_name = Paths.get(file_path).getFileName().toString();
|
try {
|
s3Client.putObject(bucket_name, key_name, file);
|
return "https://ccaawsbucket.s3.us-west-1.amazonaws.com/"+key_name;
|
} catch (Exception e) {
|
e.printStackTrace();
|
// System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
return null;
|
}
|
|
//删除对象
|
public static void DeleteObject(String object_key){
|
try {
|
s3Client.deleteObject(bucket_name, object_key);
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
}
|
|
//删除桶下的所有对象
|
public static void DeleteObjectALL() {
|
try {
|
String[] object_keys = QueryObjectALL();
|
DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name)
|
.withKeys(object_keys);;
|
s3Client.deleteObjects(dor);
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
}
|
|
//上传json到桶(特性化处理上传到文件夹)
|
public static void PutJsonString(String file_name,String content){
|
try {
|
|
s3Client.putObject(bucket_name, file_name, content);
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
}
|
|
//查询指定桶下所有的对象
|
public static String[] QueryObjectALL(){
|
ListObjectsV2Result result = s3Client.listObjectsV2(bucket_name);
|
List<S3ObjectSummary> objects = result.getObjectSummaries();
|
for (S3ObjectSummary os : objects) {
|
object_list.add(os.getKey());
|
System.err.println("* " + os.getKey());
|
}
|
String[] object_keys = object_list.stream().map(el->el.toString()).toArray(String[]::new);
|
object_list.clear();
|
return object_keys;
|
}
|
|
//下载指定文件(key_name桶名)
|
public static void GetObject(String key_name){
|
try {
|
S3Object o = s3Client.getObject(bucket_name, key_name);
|
S3ObjectInputStream s3is = o.getObjectContent();
|
FileOutputStream fos = new FileOutputStream(new File(key_name));
|
byte[] read_buf = new byte[1024];
|
int read_len = 0;
|
while ((read_len = s3is.read(read_buf)) > 0) {
|
fos.write(read_buf, 0, read_len);
|
}
|
s3is.close();
|
fos.close();
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
System.exit(1);
|
} catch (FileNotFoundException e) {
|
System.err.println(e.getMessage());
|
System.exit(1);
|
} catch (IOException e) {
|
System.err.println(e.getMessage());
|
System.exit(1);
|
}
|
System.out.println("Done!");
|
}
|
|
//删除指定桶下的指定对象
|
public static void DeleteAssignObject(String appBucket, String appName) {
|
appName = "public/" + appName;
|
try {
|
s3Client.deleteObject(appBucket, appName);
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
}
|
|
//上传指定json到桶(特性化处理上传到文件夹)
|
public static void PutAssignJsonString(String appBucket, String file_name,String content){
|
try {
|
s3Client.putObject(appBucket, file_name, content);
|
} catch (AmazonServiceException e) {
|
System.err.println(e.getErrorMessage());
|
}
|
System.err.println("Done!");
|
}
|
public static void main(String[] args) {
|
// PutObject("C:\\Users\\Admin\\Desktop\\1.jpg");
|
}
|
}
|