資源簡介
java上傳圖片到aws s3,最近因為項目原因,需要將程序下載到本地的圖片上傳到aws s3提供給國外的客戶使用,文件為我使用的詳細代碼
代碼片段和文件信息
package?com.ico;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.util.List;
import?java.util.concurrent.ExecutorService;
import?java.util.concurrent.Executors;
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.AmazonS3ClientBuilder;
import?com.amazonaws.services.s3.model.Bucket;
import?com.amazonaws.services.s3.model.GetobjectRequest;
import?com.amazonaws.services.s3.model.objectListing;
import?com.amazonaws.services.s3.model.objectmetadata;
import?com.amazonaws.services.s3.model.S3object;
import?com.amazonaws.services.s3.model.S3objectInputStream;
import?com.amazonaws.services.s3.model.S3objectSummary;
public?class?Listobjects?implements?Runnable{
private?String?key;
private?String?path;
static?int?i=0;
public?Listobjects(String?keyString?path){
this.key?=?key;
this.path?=?path;
}
public?void?run()?{
try?{
listobjects(this.key?this.path);
}?catch?(FileNotFoundException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
????public?static?void?listobjects(String?keyString?path)?throws?FileNotFoundException
????{
???? //指定bucket名稱
????????String?bucket_name?=?“xxx“;
????????System.out.println(i++);
????????//連接s3
????????BasicAWSCredentials?awsCreds?=?new?BasicAWSCredentials(Access?key?ID?Secret?access?key);
????????AmazonS3?s3?=?AmazonS3ClientBuilder.standard()
????????????????.withCredentials(new?AWSStaticCredentialsProvider(awsCreds))
????????????????.withRegion(Regions.US_EAST_2)?
????????????????.build();
????????//獲取s3上面所有的buckets;
????????List?buckets?=?s3.listBuckets();
????????System.out.println(“Your?Amazon?S3?buckets?are:“);
????????System.out.println(buckets.size());
????????for?(Bucket?b?:?buckets)?{
????????????System.out.println(“*?“?+?b.getName());
????????}
????????
????????//根據key刪除bucket上面的文件
????????deleteobject(String?bucketName?String?key)?---此API刪除文件:buckName?文件夾名;key,所刪除文件的key值???
????????
????????isobjectExit(String?bucketName?String?key)://判斷名為bucketName的bucket里面是否有一個名為key的object;、
????????
????????
????????String[]?types?=?key.split(“\\.“);
????????String?type?=?types[1];
????????objectmetadata?metadata?=?new?objectmetadata();
????????metadata.setContentType(“image/“+type);
????????FileInputStream?inputStream?=?new?FileInputStream(path);
????????/*PutobjectResult?qString?=?s3.putobject(bucket_name?key?inputStream?metadata);
????????System.out.println(qString);*/
????????//System.out.println(key?+?“?上傳成功“);
????????System.out.println(key);
????????//獲取buckets上面的文件
??????/*?try?{
???????? S3object?souString?=?s3.getobject(bucket_name?key);
}?catch?(Exception?e)?{
e.printStackTrace();
評論
共有 條評論