मैं s3 बाल्टी से फाइल प्राप्त करने के लिए boto3 का उपयोग कर रहा हूं। मुझे इसी तरह की कार्यक्षमता की आवश्यकता हैaws s3 sync
मेरा वर्तमान कोड है
#!/usr/bin/python
import boto3
s3=boto3.client('s3')
list=s3.list_objects(Bucket='my_bucket_name')['Contents']
for key in list:
s3.download_file('my_bucket_name', key['Key'], key['Key'])
यह ठीक काम कर रहा है, जब तक कि बाल्टी में केवल फाइलें हैं। यदि कोई फ़ोल्डर बकेट के अंदर मौजूद है, तो उसका एरर फेंक दिया जाता है
Traceback (most recent call last):
File "./test", line 6, in <module>
s3.download_file('my_bucket_name', key['Key'], key['Key'])
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/inject.py", line 58, in download_file
extra_args=ExtraArgs, callback=Callback)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 651, in download_file
extra_args, callback)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 666, in _download_file
self._get_object(bucket, key, filename, extra_args, callback)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 690, in _get_object
extra_args, callback)
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 707, in _do_get_object
with self._osutil.open(filename, 'wb') as f:
File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 323, in open
return open(filename, mode)
IOError: [Errno 2] No such file or directory: 'my_folder/.8Df54234'
क्या यह boto3 का उपयोग करके एक पूर्ण s3 बाल्टी डाउनलोड करने का एक उचित तरीका है। फोल्डर कैसे डाउनलोड करें।