Разделенный пространством ресурс не найден в 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.

0 ответов

Другие вопросы по тегам