Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
sep = self._path._flavour.sep
kwargs = {
'Bucket': bucket.name,
'Prefix': self._S3_accessor.generate_prefix(self._path),
'Delimiter': sep}
continuation_token = None
while True:
if continuation_token:
kwargs['ContinuationToken'] = continuation_token
response = bucket.meta.client.list_objects_v2(**kwargs)
for folder in response.get('CommonPrefixes', ()):
full_name = folder['Prefix'][:-1] if folder['Prefix'].endswith(sep) else folder['Prefix']
name = full_name.split(sep)[-1]
yield S3DirEntry(name, is_dir=True)
for file in response.get('Contents', ()):
name = file['Key'].split(sep)[-1]
yield S3DirEntry(name=name, is_dir=False, size=file['Size'], last_modified=file['LastModified'])
if not response.get('IsTruncated'):
break
continuation_token = response.get('NextContinuationToken')
'Bucket': bucket.name,
'Prefix': self._S3_accessor.generate_prefix(self._path),
'Delimiter': sep}
continuation_token = None
while True:
if continuation_token:
kwargs['ContinuationToken'] = continuation_token
response = bucket.meta.client.list_objects_v2(**kwargs)
for folder in response.get('CommonPrefixes', ()):
full_name = folder['Prefix'][:-1] if folder['Prefix'].endswith(sep) else folder['Prefix']
name = full_name.split(sep)[-1]
yield S3DirEntry(name, is_dir=True)
for file in response.get('Contents', ()):
name = file['Key'].split(sep)[-1]
yield S3DirEntry(name=name, is_dir=False, size=file['Size'], last_modified=file['LastModified'])
if not response.get('IsTruncated'):
break
continuation_token = response.get('NextContinuationToken')
def __iter__(self):
bucket_name = self._S3_accessor.bucket_name(self._path.bucket)
if not bucket_name:
for bucket in self._S3_accessor.s3.buckets.all():
yield S3DirEntry(bucket.name, is_dir=True)
return
bucket = self._S3_accessor.s3.Bucket(bucket_name)
sep = self._path._flavour.sep
kwargs = {
'Bucket': bucket.name,
'Prefix': self._S3_accessor.generate_prefix(self._path),
'Delimiter': sep}
continuation_token = None
while True:
if continuation_token:
kwargs['ContinuationToken'] = continuation_token
response = bucket.meta.client.list_objects_v2(**kwargs)
for folder in response.get('CommonPrefixes', ()):
full_name = folder['Prefix'][:-1] if folder['Prefix'].endswith(sep) else folder['Prefix']