このトピックでは、ApsaraDB RDSをObject Storage Service (OSS) とともに使用して、さまざまな構造にデータを格納する方法について説明します。

OSSは、大量のデータを保存するためにAlibaba cloudが提供する、安全で費用対効果の高い信頼性の高いクラウドストレージサービスです。 たとえば、アプリケーションがフォーラムソフトウェアの場合、ユーザープロフィール写真やフォーラム投稿などのリソースをOSSバケットに保存できます。 これにより、RDSインスタンスに保存する必要があるデータの量を減らすことができます。

サンプルコード

このセクションでは、ApsaraDB RDSをOSSと一緒に使用する方法の例を示します。 このセクションのコードはPython 2.7で記述されています。

  1. OSS APIを初期化します。
     from oss.oss_api import *
     endpoint="oss-cn-hangzhou.aliyuncs.com"  
     accessKeyId, accessKeySecret="your id","your secret"
     oss = OssAPI(endpoint, accessKeyId, accessKeySecret)
  2. OSS バケットを作成します。
     # バケットのアクセス制御リスト (ACL) をprivateに設定します。
     res = oss.create_bucket(bucket,"private")
     print "%s\n%s" % (res.status, res.read())
  3. オブジェクトをOSSバケットにアップロードします。
     res = oss.put_object_from_file(bucket, object, "test.txt")
     print "%s\n%s" % (res.status, res.getheaders())
  4. オブジェクトを取得します。
     res = oss.get_object_to_file(bucket, object, "/filepath/test.txt")
     print "%s\n%s" % (res.status, res.getheaders())

Elastic Compute Service (ECS) アプリケーションコードは、ユーザーIDがRDSインスタンスに保存され、ユーザープロファイル写真がOSSバケットに保存されることを指定します。 次の例は、Pythonコードスニペットを示しています。



#!/usr/bin/env python
oss.oss_api import * から
endpoint="oss-cn-hangzhou.aliyuncs.com"
accessKeyId, accessKeySecret="your id","your secret"
oss = OssAPI (エンドポイント、accessKeyId、accessKeySecret)
user_id = mysql_client.fetch_one(sql)# RDSインスタンス内のユーザーのIDを検索します。
# 指定されたパスにユーザーのプロフィール写真を取得してダウンロードします。
oss.get_object_to_file (バケット、オブジェクト、your_path/user_id +'.png ')
# アップロードされたユーザーのプロフィール写真を処理します。
oss.put_object_from_file (バケット、オブジェクト、your_path/user_id +'.png ')