オブジェクトがアップロードされた後、object Storage Service (OSS) はアプリケーションサーバーにコールバック要求を送信できます。 コールバックを実装するには、関連するコールバックパラメーターを含むリクエストのみをOSSに送信する必要があります。
使用上の注意
オブジェクトをアップロードするときに、アップロードコールバックを設定できます。 オブジェクトがアップロードされると、OSSは指定したアプリケーションサーバーアドレスにHTTP POSTリクエストを送信します。 このようにして、アプリケーションサーバは、アップロードを知らされる。
コールバックURLにクエリ文字列を含めることはできません。 クエリ文字列は
: Query
パラメーターで指定する必要があります。オブジェクトがアップロードされてもアップロードコールバックが失敗した場合、クライアントは
CallbackError
エラーコードを返します。 エラーを無視する場合は、例外を明示的に処理する必要があります。コールバックサーバーとして機能するアプリケーションサーバーの詳細については、『GitHub』をご参照ください。
例
uploadコールバックは、put_object操作またはresumable_upload操作を呼び出してオブジェクトをアップロードする場合にのみ設定できます。
put_object操作を呼び出してオブジェクトをアップロードするときのアップロードコールバックの設定
put_object操作を呼び出してオブジェクトをアップロードするときにアップロードコールバックを設定する場合は、関連するバケットとオブジェクト情報をbodyフィールドに追加する必要があります。 アプリケーションサーバーがコールバック要求を受信すると、オブジェクトはOSSにアップロードされます。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
callback = Aliyun::OSS::Callback.new (
url: 'http:// oss-demo.aliyuncs.com:23450 '、
クエリ: {user: 'put_object'} 、
body: 'bucket =${ bucket}&object =${ object}'
)
始める
bucket.put_object('files/hello', file: '/tmp/x', callback: callback)
rescue Aliyun::OSS::CallbackError => e
"Callback failed: #{e.message}" を置く
終了
resumable_upload操作を呼び出してオブジェクトをアップロードするときのアップロードコールバックの設定
put_object操作を呼び出すのと同様の方法で、resumable_upload操作を呼び出すことができます。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
callback = Aliyun::OSS::Callback.new (
url: 'http:// oss-demo.aliyuncs.com:23450 '、
クエリ: {user: 'put_object'} 、
body: 'bucket =${ bucket}&object =${ object}'
)
始める
bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)
rescue Aliyun::OSS::CallbackError => e
"Callback failed: #{e.message}" を置く
終了