441
小米6
追加上傳__上傳文件_開發人員指南_對象存儲 OSS-阿裏雲
適用場景
之前提到的上傳方式,比如簡單上傳,表單上傳,斷點續傳上傳等,創建的Object都是Normal類型,這種Object在上傳結束之後內容就是固定的,隻能讀取,不能修改。如果Object內容發生了改變,隻能重新上傳同名的Object來覆蓋之前的內容,這也是OSS和普通文件係統使用的一個重大區別。
正因為這種特性,在很多應用場景下會很不方便,典型比如視頻監控、視頻直播領域等,視頻數據在實時的不斷產生。如果使用其他上傳方式,隻能將視頻流按照一定規律切分成小塊然後不斷的上傳新的Object。這種方式在實際使用上存在很明顯的缺點:
- 軟件架構比較複雜,需要考慮文件分塊等細節問題。
- 需要有位置保存元數據,比如已經生成的Object列表等,然後每次請求都重複讀取元數據來判斷是否有新的Object生成。這樣對服務器的壓力很大,而且客戶端每次都需要發送兩次網絡請求,延時上也會有一定的影響。
- 如果Object切分的比較小的話,延時比較低,但是眾多Object會導致管理起來很複雜。如果Object切分的比較大的話,數據的延時又會很高。
為了簡化這種場景下的開發成本,OSS提供了用戶通過追加上傳(Append Object)的方式在一個Object後麵直接追加內容的功能。通過這種方式操作的Object的類型為Appendable Object,而其他的方式上傳的Object類型為Normal Object。每次追加上傳的數據都能夠即時可讀。
如果使用追加上傳,那麼上述場景的架構就變得很簡單。視頻數據產生之後即時地通過追加上傳到同一個Object,而客戶端隻需要定時獲取該Object的長度與上次讀取的長度進行對比,如果發現有新的數據可讀,那麼就觸發一次讀操作來獲取新上傳的數據部分即可。通過這種方式可以很大的簡化架構,增強擴展性。
不僅在視頻場景,在日誌追加上傳的場景下,追加上傳也能發揮作用。
上傳限製
- 大小限製:在這種上傳方式下,Object不能超過5GB。
- 命名限製
- 使用UTF-8編碼
- 長度必須在1-1023字節之間
- 不能以“/”或者“”字符開頭
- 文件類型:隻有通過追加上傳創建的文件才可以後續繼續被追加上傳。也就是說,其他通過簡單上傳、表單上傳、分片上傳得到的文件,不能在這些文件後麵追加上傳新的內容。
- 後續操作限製:通過追加上傳的文件,不能被複製,可以修改文件本身的meta信息。
上傳的安全及授權
為了防止第三方往開發者的Bucket未經授權上傳,OSS提供了Bucket和Object級別的訪問權限控製,詳細解釋見訪問控製。為了授權給第三方上傳,OSS除了Bucket和Object級別的訪問權限外,還提供了賬號級別的授權,見上傳安全之授權第三方。
上傳後續操作
如果上傳的是圖片需要處理,可以使用上傳圖片後雲端處理。如果上傳的是音頻或者視頻文件也可以使用媒體轉碼。
功能使用參考
- API:Append Object
- SDK:Java SDK-追加文件示例
注意: 追加上傳不支持上傳回調操作。
最佳實踐
相關參考鏈接
最後更新:2016-11-23 16:04:09
上一篇:
斷點續傳上傳__上傳文件_開發人員指南_對象存儲 OSS-阿裏雲
下一篇:
上傳回調__上傳文件_開發人員指南_對象存儲 OSS-阿裏雲
係統限製__產品使用手冊_開放搜索-阿裏雲
更新編排模板__鏡像與模板管理_用戶指南_容器服務-阿裏雲
域名狀態信息__數據類型_API文檔_域名-阿裏雲
做世界雲計算的“兩極”,阿裏雲如何跨過“企業關”
如何跨項目配置任務依賴__用戶常見問題反饋_常見問題_大數據開發套件-阿裏雲
經典網絡專線接入__使用金融雲產品_金融雲-阿裏雲
AppendObject__關於Object操作_API 參考_對象存儲 OSS-阿裏雲
修改數據庫參數列表__參數管理_API 參考_雲數據庫 RDS 版-阿裏雲
iOS推送證書設置__iOS SDK手冊_App SDK 手冊_移動推送-阿裏雲
搜索指定 Topic 詳細信息__Topic 相關接口_Open API_消息隊列 MQ-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲