2012-03-12 26 views
2

複数のサブディレクトリを持つフォルダを圧縮します。私は、次のように読むことで のboto使用してS3にそれをアップロードすると botoを使ってs3にzipファイルをアップロードするには?

zipdata = open(os.path.join(os.curdir, zip_file), 'rb').read() 

そして、ルートディレクトリにコピーされたすべてのsubdirectriesからすべてのファイル。 s3にはサブディレクトリが存在しません。

フォルダのzipファイルをs3にアップロードするにはどうすればよいですか?

+0

S3にはディレクトリがありません – tkone

+0

はい、なぜそうなるべきですか? – user12345

+1

ファイル名にスラッシュを入れてディレクトリを偽装できます。 –

答えて

0

上記のコマンドを実行すると、zip_dataにはzipファイルに含まれるバイトが含まれます。そのデータをS3に書き込むと、そのデータを含むS3内の単一のオブジェクト(キー)が取得されます。それはあなたが欲しいものですか?

zipファイルを展開し、その中の個々のファイルとディレクトリをすべて個別のオブジェクトとしてS3に保存するように思えます。その場合は、zipファイルをローカルに展開し、階層を歩き、それぞれの個別のファイルをS3に保存する必要があります。あなたのためにこれを行うには、s3putコマンドラインツールをbotoで使うことができます。

Zipファイルの内容を自動的に解凍する方法はありません。

関連する問題