Разделенный пространством ресурс не найден в scandir(), хорошо работает со listdir()
Ресурс, разделенный пространством, не найден при доступе через fs.scandir(resource)
, но отлично работает с fs.listdir(resource)
.
Например:
fs.listdir('/Real Estate/' )
работает, ноfs.scandir('/Real Estate/')
не работает.
КОД:
from fs_s3fs import S3FS
import json
fs = S3FS(
bucket_name,
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY
)
def read_s3_dir(directory):
metadata = {'title': 'Choose Option', 'is_downloadable': False}
is_leaf = False
preview_file = None
lists = fs.listdir(directory)
print(">>",list(lists))
dirobjs = fs.scandir(directory)
directories = []
files = []
for i in dirobjs:
if i.is_dir:
directories.append(i.name)
if i.is_file:
files.append(i.name)
if len(directories) == 0:
metadata['is_downloadable'] = True
if 'metadata.json' in files:
with fs.open(directory+'metadata.json') as f:
metadata = json.loads(f.read())
files.remove('metadata.json')
return {'directories': sorted(directories), 'files': sorted(files), 'metadata': metadata}
Я использую fs_3fs, который использует boto3
.