OSS阿里雲(Object Storage Service)是一種安全、高可靠、高可擴展的雲端對象存儲服務。它可以通過 APIs 對象存儲控制台或者 SDK 開發工具完成對雲端文件的上傳、下載、刪除等基本操作。本文將從多個方面詳細介紹OSS阿里雲的特點及其適用的場景。
一、高可靠的存儲
OSS可以存儲任意類型的文件,包括文本、圖像、音頻、視頻文件等。存儲文件時,OSS默認採用3副本存儲模式,將數據在3個不同的物理存儲設備上存儲,確保數據的安全性和高可靠性。同時,OSS也支持存儲方式選擇自定義,根據用戶需求來選擇其他存儲方式,如副本數、單副本速度等等。
代碼示例:
// 存儲時採用默認的3副本存儲模式 ossClient.putObject(bucketName, objectName, inputStream); // 存儲時,自定義存儲方式和參數 PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream); putObjectRequest.setStorageClass(StorageClass.IA); // 設置對象存儲類型為低頻訪問存儲 putObjectRequest.setCannedACL(CannedAccessControlList.PublicRead); // 設置對象ACL為公共讀 ossClient.putObject(putObjectRequest);
二、高性能的上傳下載
在OSS上上傳/下載文件時,它具有高可靠性、高速度、高吞吐量的特點。OSS的上傳功能支持斷點續傳,同時也支持伺服器端複製和分片上傳。OSS的下載功能支持全站加速,加速下載來自世界各地的用戶請求。
代碼示例:
// 文件上傳 File file = new File("localFile"); ossClient.putObject(bucketName, objectName, file); // 斷點續傳上傳 // ... ossClient.uploadPart(uploadPartRequest); // 文件下載 OSSObject ossObject = ossClient.getObject(bucketName, objectName); InputStream inputStream = ossObject.getObjectContent(); // 加速下載 GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET); request.setExpiration(new Date(System.currentTimeMillis() + 3600 * 1000L)); URL url = ossClient.generatePresignedUrl(request);
三、API多樣性
OSS提供了多種API方式,包括RESTful API、Java SDK、Python SDK、Ruby SDK、PHP SDK、.NET SDK等等。多種API方式可以方便用戶在不同的開發環境和開發框架中使用。用戶可以根據自己的需求來選擇最適合的API方式。
代碼示例:
// Java SDK上傳文件 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, objectName, new File(localFilePath)); // Python SDK下載文件 auth = oss2.Auth(access_key_id, access_key_secret) bucket = oss2.Bucket(auth, endpoint, bucket_name) with open(local_file_path, 'wb') as f: for chunk in oss2.resumable_download(bucket, object_name, progress_callback=percentage): f.write(chunk) // PHP SDK刪除文件 $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->deleteObject($bucket, $object);
四、應用場景
OSS可用於媒體資產管理、智能家居、物聯網、在線教育、電商等多個行業。以下是一些使用場景的簡要介紹。
1. 媒體資產管理
用戶可以將大量的視頻、音頻、圖片等媒體資產存儲在OSS上,並通過CDN加速進行高效分發。這裡的媒體資產管理可分為在線製作和後期製作兩個環節。
2. 智能家居
在智能家居數碼產品中(如攝像頭、門鎖、智能音箱),基於OSS存儲的圖片和視頻數據即可存儲到雲端,支持數據覆蓋、多媒體管理等一系列操作,方便用戶隨時隨地查看家中各種設備狀態。
3. 物聯網
OSS可以存儲物聯網設備生成的數據和文件(如感測器、集控器、網關)等,同時支持與Web端進行交互,為採集、存儲和使用數據提供高效、安全的解決方案。
4. 在線教育
在線教育行業需要存儲大量的視頻、音頻課件,作為教育資源供TA支持教學使用。OSS的高可靠性和數據訪問速度使得學生、老師可以快速地獲取教育資源。
5. 電商
OSS可以作為電商行業中存儲商品圖片、視頻、文檔等資源的雲端存儲服務。例如,用戶在購物過程中可以選擇圖片放大查看、甚至是視頻播放;商家可以通過OSS來託管大規模的商品詳情頁圖片等資源。
總之,不同行業可以依據自身需求差異選擇使用OSS進行當地存儲或進行全球化部署,同時,通過OSS的多樣性API,使得用戶可以方便地在不同設備和場景中使用OSS。
代碼示例:
// 媒體資產管理 // ... OSSObject object = ossClient.getObject(bucketName, objectName); InputStream inputStream = object.getObjectContent(); // do something with inputStream // 智能家居 // ... // OSS盤提供的攝像頭獲取和視頻回看功能。 // 中轉伺服器得到攝像頭推送過來的圖片或視頻流,存儲到oss盤中。 // App端請求獲取攝像頭回看,中轉伺服器從oss盤中獲取對應的圖片或視頻流。 // 物聯網 // ... public List querySensorData(String productKey, String deviceName, String startTimestamp, String endTimestamp) { List deviceDataList = new ArrayList(); QueryDeviceDataRequest request = new QueryDeviceDataRequest(); request.setProductKey(productKey); request.setDeviceName(deviceName); request.setStartTime(startTimestamp); request.setEndTime(endTimestamp); for (DataEntry entry : client.getDeviceData(request).getData()) { DeviceData deviceData = JSONSerializer.deserialize(entry.getData(), DeviceData.class); deviceData.setTime(entry.getTime()); deviceDataList.add(deviceData); } return deviceDataList; } // 在線教育 // ... OSSObject ossObject = ossClient.getObject(bucketName, objectName); InputStream inputStream = ossObject.getObjectContent(); // 電商 // ... OSSObject ossObject = ossClient.getObject(bucketName, objectName); InputStream inputStream = ossObject.getObjectContent(); // do something with inputStream
原創文章,作者:RMDXS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/360912.html