ホームページ > バックエンド開発 > Golang > AWS S3 ListObjectsV2 はオブジェクトとして「フォルダー」を返します

AWS S3 ListObjectsV2 はオブジェクトとして「フォルダー」を返します

WBOY
リリース: 2024-02-08 20:53:49
転載
704 人が閲覧しました

AWS S3 ListObjectsV2 返回“文件夹”作为对象

質問の内容

s3バケットの特定のディレクトリにあるすべてのファイルを一覧表示しようとしています(s3には実際にはディレクトリがないことはわかっています) 。)。

構造は次のとおりです:

バケット名: フォルダー1/フォルダー2/フォルダー3/ファイル

つまり、s3 の世界では、これは上記の名前のファイルを保存するだけだと思います。

これは私のコードです:

リーリー

resp には、私が期待するファイルと、それが保存されている「ディレクトリ」が含まれています:

リーリー

私も試してみました:

リーリー

しかし、結果は同じです。

これはパラメータの結果です:

params := &s3.listobjectsv2input{
        bucket: aws.string(os.getenv("s3_user_bucket")),
        prefix: aws.string(key + loc[0] + "/"),
    }

    resp, _ := svc.listobjectsv2(params)
ログイン後にコピー

正解


オブジェクトとしてディレクトリが返される理由を尋ねていると思います。

そのとおりです。amazon s3 はディレクトリ を使用しません。代わりに、オブジェクトのファイル名 (key) は、ファイル名を含む フル パス です。特定のパスにオブジェクトを作成する前にディレクトリを作成する必要はありません。

ただし、誰かが s3 管理コンソールの Create Folder ボタンをクリックすると、ディレクトリの名前を持つ 長さゼロのオブジェクトが作成されます。これにより、ディレクトリが「強制的に」表示されます (ディレクトリ内にオブジェクトがあるため) が、実際には長さ 0 のオブジェクトです。

出品結果を表示:

リーリー

size: 0 と表示されていることがわかります。つまり、これは長さ 0 のオブジェクトです。

これらの種類のファイルをリストから除外したい場合は、コード内の長さ 0 のオブジェクトをスキップしてください。

以上がAWS S3 ListObjectsV2 はオブジェクトとして「フォルダー」を返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート