【答疑】物件儲存OSS常見問題解答(諮詢類2)

鬆茂發表於2019-01-04

1. oss支援直接網路流上傳麼,比如說客戶有個url,然後裡面的內容直接上傳到oss上面?

解答:OSS支援流式上傳。

流式上傳是簡單上傳的一種,流式上傳使用InputStream作為檔案的資料來源。
利用流式上傳可以上傳字串,Byte陣列,網路流,檔案流。

具體可以參考 https://help.aliyun.com/document_detail/84781.html?spm=a2c4g.11186623.6.689.7e5e3bdbBhY7x7#h2-u6587u4EF6u4E0Au4F202

2. HeadObject介面裡的 x-oss-actual-etag 是object實際的etag嗎?

解答: 不一定是。簡單上傳的時候是,分片上傳的時候不是。

OSS上的object會有etag標籤,etag主要是用來判斷服務端資料是否存在變化。
但是,這個標籤並不一定等同於檔案的MD5值,所以不建議作為校驗資料一致性的依據。
如果需要校驗上傳到OSS的檔案和本地檔案是否一致,可以在上傳檔案時攜帶檔案的Content-MD5值,
這時OSS服務端會幫使用者進行MD5校驗,只有在OSS伺服器接收到的檔案MD5值和Content-MD5一致時才可以上傳成功,從而保證上傳資料的一致性。

具體可以參考 https://help.aliyun.com/knowledge_detail/39615.html?spm=5176.11065259.1996646101.searchclickresult.178f7d80XxvPEN

3. oss遷移,能用運維的方式做麼?

解答: 可以使用OSSImport工具

OssImport工具可以將本地、其它雲端儲存的資料遷移到OSS,它有以下特點:

支援的豐富的資料來源,有本地、七牛、百度BOS、AWS S3、Azure Blob、又拍雲、騰訊雲COS、金山KS3、HTTP、OSS等,並可根據需要擴充套件;
支援斷點續傳;
支援流量控制;
支援遷移指定時間後的檔案、特定字首的檔案;
支援並行資料下載、上傳;
支援單機模式和分散式模式,單機模式部署簡單使用方便,分散式模式適合大規模資料遷移

另外近日還推出了介面操作方式的線上遷移服務,可以更方便的進行資料遷移。

阿里雲線上遷移服務是阿里雲提供的儲存產品資料通道。

使用線上遷移服務,您可以將第三方資料輕鬆遷移至阿里雲物件儲存 OSS,也可以在物件儲存 OSS 之間進行靈活的資料遷移。

4. 如何開通日誌服務?

解答:您可以在OSS管理控制檯中使用日誌分析功能,對海量日誌進行分析。

日誌分析為收費專案,資費標準請查閱計費方式說明日誌分析操作和日誌欄位說明

OSS的使用者常需要分析訪問日誌和資源消耗相關的資料,如:

OSS儲存、流量、請求的使用情況
檔案生命週期過程中的日誌查詢(建立、修改、刪除)
熱點的檔案、其訪問量以及產生的流量
獲取報錯請求日誌列表及錯誤內容

具體開通步驟請參考: https://help.aliyun.com/document_detail/70449.html?spm=5176.11065259.1996646101.searchclickresult.308a69bdc1jtXq

5. oss的bucket能否限制上傳檔案的型別

解答:通過postpolicy和url簽名是可以限制上傳的content-type。關於content-type的介紹可以參考:https://help.aliyun.com/knowledge_detail/39522.html?spm=5176.11065259.1996646101.searchclickresult.7b323836Oi9Hzd

6. java sdk 流式下載時候報這錯誤 error:Premature end of Content-Length delimited message body

解答: 原因是兩次讀取資料間隔時間超過1分鐘。OSS會關閉超過1分鐘沒有傳送或接收資料的連線。


通常會返回如下錯誤:


Exception in thread "main" org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 11990526; received: 202880
	at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:180)
	at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:200)
	at org.apache.http.impl.io.ContentLengthInputStream.close(ContentLengthInputStream.java:103)
	at org.apache.http.impl.execchain.ResponseEntityProxy.streamClosed(ResponseEntityProxy.java:128)
	at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:228)
	at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:174)
	at java.io.FilterInputStream.close(FilterInputStream.java:181)
	at java.io.FilterInputStream.close(FilterInputStream.java:181)
	at com.aliyun.oss.event.ProgressInputStream.close(ProgressInputStream.java:147)
	at java.io.FilterInputStream.close(FilterInputStream.java:181)
	at samples.HelloOSS.main(HelloOSS.java:39)

如果您每次讀取部分資料進行處理,且處理資料的時間不固定,建議使用指定範圍讀取,避免資料讀取時連線關閉。


具體請參考: https://help.aliyun.com/document_detail/32024.html?spm=a2c4g.11186623.6.724.66192237ATTw3o#h2-u8FDEu63A5u5173u95ED6


相關文章