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’)