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 サイトの他の関連記事を参照してください。