For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/developers-python-sdk-connect-bucket.md.
  • 🇯🇵 日本語
  • Data Platform Buckets コネクタ

    現在の Data Platform SDK では、Datastore コネクタを使用して Data Platform Buckets と相互作用します

    目的

    Info

    現在の Data Platform SDK では、Datastore コネクタを使用して Data Platform Buckets と相互作用します。Datastore を単にバケットコンテナと考えることができます。

    Datastore に接続する

    Datastore と相互作用するには、まず以下のコードに示すように Datastore に接続する必要があります。

    from forepaas.dwh import connect
    
    cn_datastore = connect('data_store')

    その後、cn_datastore.list() メソッドを使用して Datastore に利用可能なバケットを確認し、選択したバケットに接続して相互作用できます。

    Datastore 内の特定のバケットに直接接続することもできます。以下のコードに示すようにします。

    from forepaas.dwh import connect
    
    bucket_name = "name"
    cn_bucket = connect('data_store/' + bucket_name)

    Datastore コネクタは Data Store Connector オブジェクトを返し、バケットに直接接続すると Bucket Connector オブジェクトが返されます。

    各コネクタのメソッドについての詳細については、この記事の次のセクションを参照してください。

    Datastore コネクタのメソッド

    datastore.list(return_type = 'array')

    Datastore 内のすべてのバケットをリスト表示します。

    入力パラメータ

    NameTypeDescriptionExample
    return_typestr取得したい型を決定します array または str

    出力

    TypeDescriptionExample
    str または arrayData Store 内のバケットのリスト

    datastore.get_buckets()

    Datastore からすべてのバケットを取得します。

    出力

    TypeDescriptionExample
    list[bucket]bucket インスタンスのリスト

    datastore.get_bucket(name)

    名前からバケットインスタンスを取得します。

    入力パラメータ

    NameTypeDescriptionExample
    namestrバケット名

    出力

    TypeDescriptionExample
    bucketファイルを処理するためのバケットインスタンス

    datastore.create_bucket(name)

    Data Store にバケットを追加します。

    入力パラメータ

    NameTypeDescriptionExample
    namestrバケット名

    出力

    TypeDescriptionExample
    boolean操作の成功

    datastore.remove_bucket(name)

    Data Store からバケットを削除します。

    入力パラメータ

    NameTypeDescriptionExample
    namestrバケット名

    出力

    TypeDescriptionExample
    boolean操作の成功

    datastore.bucket_exists(name)

    バケットが存在するかどうかを確認します。

    入力パラメータ

    NameTypeDescriptionExample
    namestrバケット名

    出力

    TypeDescriptionExample
    boolean操作の成功

    バケットコネクタメソッド

    bucket.list(bool metadata=True, bool recursive=True, **kwargs)

    Data Storeのバケットからファイルをリスト表示します。

    入力パラメータ

    名前型説明例
    metadatabool(オプション) リスト表示するすべてのファイルのメタデータを取得True
    recursivebool(オプション) フォルダを再帰的にリスト表示True
    **kwargslist_objects_v2に渡される追加の引数

    出力

    型説明例
    list[Object]バケットのファイルのリスト

    短い例

    from forepaas.dwh.connect import connect
    import logging
    
    bucket_name = "name"
    bucket = connect('data_store/' + bucket_name)
    files = bucket.list()
    logger.info(f"Bucket contents: {files}")

    bucket.list_filename(return_type='array', contains='', recursive=True, **kwargs)

    Data Storeのバケットからファイル名をリスト表示します。

    入力パラメータ

    名前型説明例
    return_typestr返す型の形式: 'array' または 'str''array'
    containsstrこの値を含むファイル名をフィルタリング'2023'
    recursivebool(オプション) フォルダを再帰的にリスト表示True
    **kwargslist_objects_v2に渡される追加の引数

    出力

    型説明例
    str or [str]バケット内のファイル名のリスト['file1.csv']

    短い例

    filenames = bucket.list_filename()
    logger.info(f"Filenames: {filenames}")

    bucket.get(file_name, **kwargs)

    Data Storeのバケットからファイルの生データを取得します。

    入力パラメータ

    名前型説明例
    file_namestr取得するファイルの名前"data/file.csv"

    出力

    型説明
    urllib3.response.HTTPResponseファイルデータを含むHTTPレスポンス

    短い例

    file_data = bucket.get('uploads/file.csv')
    logger.info(f"Stream: {file_data.stream(1024)}")

    bucket.fget(object_name, file_path, **kwargs)

    Data Storeのバケットからオブジェクトをローカルパスに取得します。

    入力パラメータ

    名前型説明例
    object_namestrバケット内のオブジェクトの名前"data.csv"
    file_pathstrファイルを保存するローカルパス"./downloads/data.csv"

    出力

    型説明
    Objectオブジェクトの状態情報

    短い例

    bucket.fget("uploads/file.csv", "/tmp/file.csv")
    logger.info("File downloaded to /tmp/file.csv")

    bucket.put(object_name, data, int length, **kwargs)

    オブジェクトをData Storeのバケットにアップロードします。

    入力パラメータ

    名前型説明例
    object_namestrオブジェクトに割り当てる名前"uploaded.csv"
    dataio.RawIOBaseデータストリームstream
    lengthintデータの長さ2048

    出力

    型説明
    strサーバーからのオブジェクトETag

    短い例

    import io
    data = io.BytesIO(b"name,age\nJohn,30")
    etag = bucket.put("people.csv", data, data.getbuffer().nbytes)
    logger.info(f"Uploaded with ETag: {etag}")

    bucket.fput(object_name, file_path, **kwargs)

    ファイルをData Storeのバケットにアップロードします。

    入力パラメータ

    名前型説明例
    object_namestr作成するオブジェクトの名前"backup.csv"
    file_pathstrローカルシステム上のファイルへのパス"./backup.csv"

    出力

    型説明
    strサーバーからのオブジェクトETag

    短い例

    bucket.fput("people.csv", "/tmp/people.csv")
    logger.info("Uploaded /tmp/people.csv")

    bucket.put_request(url, path, data={}, method='GET', headers={}, **kwargs)

    HTTPリクエストからオブジェクトを取得し、Data Storeのバケットにアップロードします。

    入力パラメータ

    名前型説明例
    urlstrオブジェクトをダウンロードするソースURL"https://..."
    pathstrバケット内にファイルを保存するパス"raw/data.csv"
    datadictリクエストボディデータ(あれば){}
    methodstr使用するHTTPメソッド'GET'
    headersdictリクエストのカスタムヘッダー{'Auth': '...'}

    短い例

    bucket.put_request(
        url="https://example.com/file.csv",
        path="remote/file.csv"
    )
    logger.info("File fetched from URL and uploaded to bucket.")

    bucket.delete(path, **kwargs)

    Data Storeのバケット内の複数/単一のファイルを削除します。

    入力パラメータ

    名前型説明例
    pathstr or list削除するファイルのパス(複数可)"data/file.csv"

    短い例

    bucket.delete("people.csv")
    logger.info("File deleted from bucket.")

    bucket.fcopy_to(new_bucket, object_name, object_source, **kwargs)

    Data Store内のバケットから別のバケットにファイルをコピーします。

    入力パラメータ

    名前型説明例
    new_bucketstrターゲットバケット名"archive"
    object_namestrコピーしたオブジェクトの新しい名前"file_backup.csv"
    object_sourcestr現在のバケット内の元のオブジェクトの名前"file.csv"

    短い例

    bucket.fcopy_to("archive", "people_backup.csv", "people.csv")
    logger.info("File copied to archive bucket.")

    bucket.exists(filename, **kwargs)

    バケット内にファイルが存在するかどうかを確認します。

    入力パラメータ

    名前型説明例
    filenamestrチェックするファイルの名前またはパス"logs/2024.csv"
    **kwargs内部チェックのための追加オプション

    出力

    型説明
    boolファイルが存在するかどうか

    短い例

    if bucket.exists("people.csv"):
        logger.info("File exists.")

    bucket.get_content(file_name, **kwargs)

    バケットからファイルの全コンテンツを取得します。

    入力パラメータ

    名前型説明例
    file_namestrバケット内のファイルの名前"people.csv"
    **kwargs追加オプション(例: バージョン)

    出力

    型説明
    bytes / strファイルの生データ

    短い例

    content = bucket.get_content("people.csv")
    logger.info(f"File content: {content.decode()}")

    bucket.get_path(path)

    バケット内のオブジェクトの完全修飾パス(URLまたは参照)を返します。

    入力パラメータ

    名前型説明例
    pathstrバケット内のパスまたはオブジェクト名"reports/summary.csv"

    出力

    型説明
    strオブジェクトへの完全パス

    短い例

    full_path = bucket.get_path("people.csv")
    logger.info(f"Full path: {full_path}")

    bucket.remove_path(path)

    バケットから特定のパスを削除します。

    入力パラメータ

    名前型説明例
    pathstr削除するオブジェクトのパス"uploads/file.csv"

    出力

    型説明
    bool削除の成功

    短い例

    bucket.remove_path("people.csv")
    logger.info("Removed specific path from bucket.")

    非推奨のメソッド

    Info

    bucket.stat() メソッドはサポートされなくなり、非推奨となりました。使用ケースに応じて exists() または get_content() を代替としてご利用ください。

    追加のメソッド

    Data Platform Datastore は Minio テクノロジーに基づいて構築されています。SDK 関数の高度な設定についてさらに詳しく知りたい場合は、Minio テクニカルドキュメントを参照してください。

    さらに学ぶ

    当社のソリューションのトレーニングや技術的な実装支援が必要な場合は、営業担当者にお問い合わせください、または Professional Services ページをご覧になり、見積もりをリクエストしてください。当社の専門家がプロジェクトを分析してくださいます。

    Discord チャネルで Data Platform を構築するチームと直接質問したり、フィードバックを送信したり、交流したりしてください。

    OVHcloud サービスについてサポートが必要な場合は、Help Centreでリクエストを作成してください。

    ユーザーコミュニティに参加してください。