RDS可以和OSS搭配使用,组成多类型数据存储解决方案。

OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。RDS可以和OSS搭配使用,例如当业务应用为论坛时,RDS搭配OSS使用,注册用户的图像、帖子内容的图像等资源可以存储在OSS中,以减少RDS的存储压力。

代码示例

OSS与RDS搭配使用示例,基于Python 2.7编写。

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