阿里雲OSS 上傳大檔案 分片上傳

2021-10-16 11:53:47 字數 2512 閱讀 9242

阿里雲oss分片上傳,一定要注意,當分片上傳的時候,一般都是大檔案,檔案上傳可能時間很長,一定要注意修改前端響應時間,如果配有閘道器,閘道器請求時間酌情修改,使用nginx**時,nginx.config  也要修改時間引數,例如 proxy_read_timeout  300;(秒,預設60s)

,同時後台也會限制檔案上傳大小導致上傳失敗,這個坑也需要注意。

阿里雲oss普通上傳(小檔案)

private string endpoint="你的endpoint";

private string accesskeyid="你的accesskeyid";

private string secretaccesskey="你的accesskeysecret";

private string bucketname="你的bucketname,注意是name不是 bucket";

// 建立ossclient例項。

ossclient = new ossclient(endpoint, accesskeyid, secretaccesskey);

// 建立initiatemultipartuploadrequest物件。

initiatemultipartuploadrequest request = new initiatemultipartuploadrequest(bucketname, objectname);

// 如果需要在初始化分片時設定檔案儲存型別,請參考以下示例**。

// objectmetadata metadata = new objectmetadata();

// metadata.setheader(ossheaders.oss_storage_class, storageclass.standard.tostring());

// request.setobjectmetadata(metadata);

// 初始化分片。

initiatemultipartuploadresult upresult = ossclient.initiatemultipartupload(request);

// 返回uploadid,它是分片上傳事件的唯一標識,可以根據這個uploadid發起相關的操作,如取消分片上傳、查詢分片上傳等。

string uploadid = upresult.getuploadid();

// partetags是partetag的集合。partetag由分片的etag和分片號組成。

listpartetags = new arraylist();

// 計算檔案有多少個分片。

// 2mb

final long partsize = 2 * 1024 * 1024l;

long filelength = file.getsize();

int partcount = (int) (filelength / partsize);

if (filelength % partsize != 0)

// 遍歷分片上傳。

for (int i = 0; i < partcount; i++)

/*** 建立completemultipartuploadrequest物件。

* 在執行完成分片上傳操作時,需要提供所有有效的partetags。oss收到提交的partetags後,會逐一驗證每個分片的有效性。

* 當所有的資料分片驗證通過後,oss將把這些分片組合成乙個完整的檔案。

*/completemultipartuploadrequest uploadrequest = new completemultipartuploadrequest(bucketname, objectname, uploadid, partetags);

// 在完成檔案上傳的同時設定檔案訪問許可權。

uploadrequest.setobjectacl(cannedaccesscontrollist.publicread);

// 完成上傳。

ossclient.completemultipartupload(uploadrequest);

// 關閉ossclient。

ossclient.shutdown();

date date2 = new date();

string endtime = date2.gethours() + ":" + date2.getminutes() + ":" + date2.getseconds();

mapmap = new hashmap<>();

map.put("url", url);

map.put("name", filename);

return r.ok(map);

} catch (exception e)

}

阿里雲oss 大檔案上傳

最近公司在做工程專案,實現檔案雲儲存上傳 網上找了很久,發現很多專案都存在一些問題,但還是讓我找到了乙個成熟的專案。工程 對專案的檔案雲儲存上傳功能做出分析,找出檔案上傳的原理,對檔案的雲儲存模式深入了解。執行 檔案存放根目錄 h 這裡使用的雲儲存服務功能,所以需要在雲儲存裡面觀察檔案的大小結構 檔...

阿里雲oss 大檔案上傳

最近公司做工程專案,實現檔案雲儲存上傳。網上找了一天,發現網上很多 都存在相似問題,最後終於找到了乙個滿足我需求的專案。工程如下 這裡對專案的檔案傳輸功能做出分析,怎麼實現檔案上傳的,如何進行檔案上傳的。執行 檔案存放根目錄 h 上傳後儲存在雲儲存服務儲存中,需要在雲儲存裡面檢視檔案的大小。檔案上傳...

阿里雲oss 檔案上傳

寫在前面 阿里雲oss的各種sdk,都是對它的api進行的封裝。所以如果我們直接呼叫api時出錯,卻又不知道 出問題時,可以直接閱讀sdk的原始碼,找到問題所在。首先貼一下阿里雲oss官網貼出的簽名計算方式 authorization oss accesskeyid signature signat...