2017-12-17 6 views
1

S3 Bucket "card-prtnr-npi"からファイルをリストしようとしています。読みたいファイルは、S3 "card-prtnr-npi"バケットにある "ambs_ambivolatile"フォルダにあります。これは実際のパス "card-prtnr-npi/users/rtltest/ambs_ambivolatile"です。 "ambs_ambivolatile"フォルダにはファイルが1つしかありませんが、Boto 3は存在しない追加ファイルを読み込んでいます。S3フォルダからファイルをリストするときに余分なファイルがある理由

'users/rtltest/ambs_ambivatile /'はフォルダに存在せず、part-m-00026.bz2 'のみが存在します。下記のコードをご覧ください。

[ 'ユーザー/ rtltest/ambs_ambivolatile /'、 'ユーザ/ rtltest/ambs_ambivolatile /部分-M-00026.bz2']

s3_src_bucket = 'card-prtnr-npi' 
    s3_src_prefix = 'users/rtltest/ambs_ambivolatile/' 
    print("getting response from source") 
source_bucket = src_session.resource('s3').Bucket(s3_src_bucket) 
files = source_bucket.objects.filter(Prefix=s3_src_prefix) 
source_keys = [] 
for file in files: 
    source_keys.append(file.key) 

print(source_keys) 

上記印刷ステートメント印刷以下のリスト [ 'ユーザー/ [users/rtltest/ambs_ambivolatile /]、[users/rtltest/ambs_ambivolatile/part-m-00026.bz2]]

この追加ファイル「users/rtltest/ambs_ambivolatile /」の読み込みを停止するにはどうすればよいですか?

答えて

1

これはファイルではなく、設定したプレフィックスです。 S3にはフォルダの概念がありません。接頭辞に

source_keys = [file.key for file in files if file.key!=s3_src_prefix] 
を除外するために、これを試してみてくださいすべてのファイル・パスは、単一の文字列であり、そしてあなたはそれ

の開始のためのフィルタ処理します

関連する問題