サイズの大きいファイルを処理する場合や、データを増分処理する場合、ストリーミングダウンロードを使用して、OSS からファイルコンテンツをチャンク単位で読み取ることができます。この方法では、ファイル全体を一度にメモリに読み込むことを回避できるため、プログラムの効率とパフォーマンスが向上します。この方法は、メモリ制限を超えるファイルのダウンロード、メモリ使用量を削減するためのリアルタイムでのデータ処理、およびネットワーク経由での段階的なデータ取得に適しています。
サンプルコード
次のコードは、examplebucket から exampleobject.txt ファイルをストリーミングダウンロードする方法の例です。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# 中国 (杭州) リージョンのエンドポイントを例として使用します。実際のエンドポイントに置き換えてください。
endpoint: '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')
# オブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
bucket.get_object('exampleobject.txt') do |chunk|
puts "Got a chunk, size: #{chunk.size}."
end関連ドキュメント
ストリーミングダウンロードの API 操作の詳細については、「GetObject」をご参照ください。