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 内のすべてのバケットをリストします。

    入力パラメータ

    名前タイプ説明
    return_typestr取得したいタイプを決定します。array または str

    出力

    タイプ説明
    str または arrayData Store 内のバケットのリスト

    datastore.get_buckets()

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

    出力

    タイプ説明
    list[bucket]bucket インスタンスのリスト

    datastore.get_bucket(name)

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

    入力パラメータ

    名前タイプ説明
    namestrバケット名

    出力

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

    datastore.create_bucket(name)

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

    入力パラメータ

    名前タイプ説明
    namestrバケット名

    出力

    タイプ説明
    boolean操作の成功

    datastore.remove_bucket(name)

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

    入力パラメータ

    名前タイプ説明
    namestrバケット名

    出力

    タイプ説明
    boolean操作の成功

    datastore.bucket_exists(name)

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

    入力パラメータ

    名前タイプ説明
    namestrバケット名

    出力

    タイプ説明
    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)

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

    入力パラメータ

    名前説明
    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リクエストからオブジェクトを取得し、Datastoreのバケットにアップロードします。

    入力パラメータ

    名前説明
    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 の専門家にプロジェクトのカスタム分析を依頼してください。

    Data Platform の開発チームと直接やり取りし、質問をしたり、フィードバックを送信したり、専用の Discord チャンネル で交流したりしてください。

    OVHcloud サービスについてサポートが必要な場合は、ヘルプセンター でリクエストを作成してください。

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