OSS 是阿里雲對外提供的海量、安全、低成本、高可靠的雲端儲存體服務。RDS 可以和 OSS 搭配使用,組成多類型資料存放區解決方案。

例如,當業務應用為論壇時,RDS 搭配 OSS 使用,註冊使用者的映像、文章內容的映像等資源可以儲存在 OSS 中,以減少 RDS 的儲存壓力。

程式碼範例

OSS 與 RDS 搭配使用樣本。

  1. 初始化 OssApi。
     from oss.oss_api import *
     endpoint=”oss-cn-hangzhou.aliyuncs.com”  
     accessKeyId, accessKeySecret=”your id”,”your secret”
     oss = OssAPI(endpoint, accessKeyId, accessKeySecret)
  2. 建立 Bucket。
     #設定bucket許可權為私人
     res = oss.create_bucket(bucket,"private")
     print "%s\n%s" % (res.status, res.read())
  3. 上傳 Object。
     res = oss.put_object_from_file(bucket, object, "test.txt")
     print "%s\n%s" % (res.status, res.getheaders())
  4. 擷取對應 Object。
     res = oss.get_object_to_file(bucket, object, "/filepath/test.txt")
     print "%s\n%s" % (res.status, res.getheaders())

ECS 應用代碼中,RDS 中儲存了每個使用者的 id,而使用者對應的頭像資源儲存於 OSS 中,以簡單的 python 代碼為例:


#!/usr/bin/env python
from oss.oss_api import *
endpoint=”oss-cn-hangzhou.aliyuncs.com”  
accessKeyId, accessKeySecret=”your id”,”your secret”
oss = OssAPI(endpoint, accessKeyId, accessKeySecret)
user_id = mysql_client.fetch_one(sql)#從RDS中尋找使用者的user_id
#擷取帳戶圖片並下載到對應路徑
oss.get_object_to_file(bucket, object, your_path/user_id+’.png’)
#處理使用者上傳頭像
oss.put_object_from_file(bucket, object, your_path/user_id+’.png’)