1. oss支持直接網絡流上傳麼,比如說客戶有個url,然後裏面的內容直接上傳到oss上面?
解答:OSS支持流式上傳。
流式上傳是簡單上傳的一種,流式上傳使用InputStream作爲文件的數據源。
利用流式上傳可以上傳字符串,Byte數組,網絡流,文件流。
2. HeadObject接口裏的 x-oss-actual-etag 是object實際的etag嗎?
解答: 不一定是。簡單上傳的時候是,分片上傳的時候不是。
OSS上的object會有etag標籤,etag主要是用來判斷服務端數據是否存在變化。
但是,這個標籤並不一定等同於文件的MD5值,所以不建議作爲校驗數據一致性的依據。
如果需要校驗上傳到OSS的文件和本地文件是否一致,可以在上傳文件時攜帶文件的Content-MD5值,
這時OSS服務端會幫用戶進行MD5校驗,只有在OSS服務器接收到的文件MD5值和Content-MD5一致時纔可以上傳成功,從而保證上傳數據的一致性。
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)
如果您每次讀取部分數據進行處理,且處理數據的時間不固定,建議使用指定範圍讀取,避免數據讀取時連接關閉。