【答疑】對象存儲OSS常見問題——諮詢類

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章