すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:コールバックのアップロード

最終更新日:Dec 20, 2023

オブジェクトがアップロードされた後、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}" を置く
終了 

参考資料

  • アップロードコールバックの設定に使用される完全なサンプルコードについては、GitHubをご覧ください。

  • アップロードコールバックを設定するために呼び出すことができるAPI操作の詳細については、「コールバック」をご参照ください。