Почему некоторые из моих папок Firebase Cloud Storage не распознаются как большие двоичные объекты? - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь написать некоторый код, чтобы убедиться, что наши версии для разработки и производства синхронизированы c с контентом в облачном хранилище. Я использую Python 3.7, чтобы сделать необходимые запросы с помощью firebase_admin SDK. Я столкнулся со странной проблемой, когда он не распознает определенные папки, несмотря на то, что в этих папках есть подпапки, содержащие наши файлы, и приложение работает нормально. У меня есть этот код:

    def get_blob_list(self):
        blob_list = [blob.name for blob in self.bucket.list_blobs()]
        return sorted(blob_list)

if __name__ == '__main__':
    sa_path, sa_key, bucket = get_database_info('dev')
    with FirestoreObject(sa_path, sa_key, bucket) as dev_con:
        dev_blobs = set(dev_con.get_blob_list())
    sa_path, sa_key, bucket = get_database_info('prod')
    with FirestoreObject(sa_path, sa_key, bucket) as prod_con:
        prod_blobs = set(prod_con.get_blob_list())
    dev_not_prod = sorted(list(dev_blobs - prod_blobs))
    prod_not_dev = sorted(list(prod_blobs - dev_blobs))

    print('Blobs in dev but not prod:')
    for blob in dev_not_prod:
        print(blob)

    prod_sub_dirs = sorted([blob for blob in prod_blobs
                            if (blob.startswith('images/movement/')
                            or blob.startswith('images/nutrition/'))
                            and blob.endswith('/')])

    print()
    print('Prod sub folders:')
    for sub_dir in prod_sub_dirs:
        print(sub_dir)

Это дает следующий вывод:

Blobs in dev but not prod:
images/movement/
images/movement/exercises/
images/nutrition/
images/nutrition/recipes/

Prod sub folders:
images/movement/exercises/thumbnailImages/
images/movement/physiotherapy/
images/movement/physiotherapy/thumbnailImages/
images/nutrition/recipes/thumbnailImages/

Как он не распознает папки вверху при распознавании нижних? Интересно, кто-нибудь знает способ заставить это сделать?

...