一、OSS介紹
OSS,全稱 Object Storage Service,是阿里雲提供的一種海量、安全、低成本、高可靠的雲存儲服務。可以用來存儲和處理各種非結構化數據(如圖片、音頻、視頻、日誌等)。本文主要介紹如何利用OSS進行文件上傳。
二、概述
本文主要講解基於阿里雲OSS和阿里雲SDK進行文件上傳的相關操作。其中,我們需要了解的操作包括:
1.創建OSSClient實例
2.創建Bucket
3.上傳文件
三、創建OSSClient實例
使用阿里雲SDK進行操作,我們需要先創建一個OSSClient實例,代碼如下:
public OSS createOSSClient() {
String endpoint = "";
String accessKeyId = "";
String accessKeySecret = "";
String bucketName = "";
// 創建OSSClient實例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
return ossClient;
}
其中,需要傳入Endpoint、AccessKeyId、AccessKeySecret和BucketName。
四、創建Bucket
上傳文件之前,我們需要創建一個Bucket用於存儲文件。創建Bucket的代碼如下:
public void createBucket() {
// 創建OSSClient實例。
OSS ossClient = createOSSClient();
String bucketName = "";
if (!ossClient.doesBucketExist(bucketName)) {
ossClient.createBucket(bucketName);
}
// 關閉OSSClient。
ossClient.shutdown();
}
其中,我們需要判斷Bucket是否已經存在,如果不存在就創建一個Bucket。
五、上傳文件
上傳文件時,我們需要先創建PutObjectRequest對象,然後使用OSSClient實例的putObject方法進行上傳。代碼如下:
public void uploadFile() {
// 創建OSSClient實例。
OSS ossClient = createOSSClient();
String bucketName = "";
String objectName = "";
String filePath = "";
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
ossClient.putObject(putObjectRequest);
// 關閉OSSClient。
ossClient.shutdown();
}
其中,需要傳入BucketName、ObjectName和文件路徑。
六、上傳進度
上傳大文件時,可能需要顯示上傳進度。我們可以通過實現PutObjectRequest的ProgressListener接口來實現上傳進度的回調。代碼如下:
public void uploadFileWithProgress() {
// 創建OSSClient實例。
OSS ossClient = createOSSClient();
String bucketName = "";
String objectName = "";
String filePath = "";
File file = new File(filePath);
// 設置分片大小,100M(默認為100K)。
final int partSize = 100 * 1024 * 1024;
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, file);
putObjectRequest.setPartSize(partSize);
// 設置上傳進度回調。
putObjectRequest.setProgressListener(new ProgressListener() {
@Override
public void progressChanged(ProgressEvent progressEvent) {
switch (progressEvent.getEventType()) {
case TRANSFER_STARTED_EVENT:
System.out.println("開始上傳...");
break;
case REQUEST_CONTENT_LENGTH_EVENT:
System.out.println("上傳文件大小為:" + progressEvent.getBytes());
break;
case REQUEST_BYTE_TRANSFER_EVENT:
System.out.println("已上傳:" + progressEvent.getBytes());
break;
case TRANSFER_COMPLETED_EVENT:
System.out.println("上傳完成!");
break;
case TRANSFER_FAILED_EVENT:
System.out.println("上傳失敗!");
break;
default:
break;
}
}
});
ossClient.putObject(putObjectRequest);
// 關閉OSSClient。
ossClient.shutdown();
}
其中,我們需要設置分片大小並實現ProgressListener接口。
七、小結
以上就是使用阿里雲OSS和阿里雲SDK進行文件上傳的相關操作。需要注意的是,上傳文件時需要先創建OSSClient實例和Bucket。上傳大文件時,可以使用分片上傳和上傳進度回調功能。希望對大家有所幫助!
原創文章,作者:VAWPZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/361191.html
微信掃一掃
支付寶掃一掃