Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonとBoto3でS3オブジェクトをダウンロードする

この投稿では、PythonとBoto3ライブラリを使用してawsS3バケットからファイルと画像をダウンロードする方法の例を示します。

BotoはPython用のAWSSDKです。 EC2やS3バケットなどのAWSサービスとやり取りできる使いやすい機能を提供します。

PythonとBoto3を使用してS3オブジェクトをダウンロード

次の例では、指定されたS3バケットから1つのファイルをダウンロードします。

まず、boto3.client(s3)を使用してS3クライアントを作成する必要があります 。

import boto3

BUCKET_NAME = 'my_s3_bucket'
BUCKET_FILE_NAME = 'my_file.json'
LOCAL_FILE_NAME = 'downloaded.json'

def download_s3_file():
    s3 = boto3.client('s3')
    s3.download_file(BUCKET_NAME, BUCKET_FILE_NAME, LOCAL_FILE_NAME)

download_file メソッドは3つのパラメータを取ります:

最初のパラメーターはS3のバケット名です。2番目はダウンロードするファイル(名前と拡張子)で、3番目のパラメーターは保存するファイルの名前です。

指定されたバケット内のすべてのS3オブジェクトをダウンロード

次の例では、指定されたS3バケット内のすべてのオブジェクトをダウンロードします。

コードスニペットは、ファイルがサブフォルダーではなくバケットのルートに直接あることを前提としています。

import boto3

def download_all_files():
    #initiate s3 resource
    s3 = boto3.resource('s3')
    # select bucket
    my_bucket = s3.Bucket('bucket_name')
    # download file into current directory
    for s3_object in my_bucket.objects.all():
        filename = s3_object.key
        my_bucket.download_file(s3_object.key, filename)
サブフォルダーS3バケット内のすべてのオブジェクトをダウンロード

次のコードは、S3バケットのサブフォルダーにあるファイルをダウンロードする方法を示しています。

ファイルが次のバケットと場所にあるとします。

BUCKET_NAME = 'images'

PATH = pets/cats/

import boto3
import os

def download_all_objects_in_folder():
    s3_resource = boto3.resource('s3')
    my_bucket = s3_resource.Bucket('images')
    objects = my_bucket.objects.filter(Prefix='pets/cats/')
    for obj in objects:
        path, filename = os.path.split(obj.key)
        my_bucket.download_file(obj.key, filename)
参照

Boto3ドキュメント


  1. Pythonプログラムによるデータ分析と視覚化

    このチュートリアルでは、パンダなどのモジュールを使用したデータ分析と視覚化について学習します。 およびma​​tplotlib Python 。 Pythonは、データ分析に最適です。モジュールをインストールするパンダ およびma​​tplotlib 次のコマンドを使用します。 pip install pandas pip install matplotlib インストールプロセスが完了すると、成功メッセージが表示されます。まず、パンダについて学びます その後、 matplotlibが表示されます 。 パンダ Pandasは、データ分析ツールを提供するPythonのオープンソース

  2. Pythonのファイルオブジェクト?

    Pythonでは、ファイルの読み取りまたは書き込みを試みるたびに、ライブラリがネイティブに処理されるため、ライブラリをインポートする必要はありません。 最初に行うことは、組み込みのopen関数を使用してファイルオブジェクトを取得することです。 open関数はファイルを開き、ファイルオブジェクトを返します。ファイルオブジェクトには、情報を取得したり、開いたファイルを操作したりするために使用できるメソッドと属性が含まれています。 ファイルとは何ですか? ファイルに対して操作を行う前に、まずファイルとは何かを理解しましょう。ファイルは、関連情報を保存するためのディスク上の名前付きの場所です。フ