Листинг файлов в облачном хранилище Google в python 2,7 - PullRequest
0 голосов
/ 24 января 2020

У меня есть проект в Google API Engine, где я использую Google Cloud Storage, чтобы сохранить некоторые файлы в одной задаче и перечислить некоторые из этих файлов в другой задаче для их обработки. Я не смог найти никаких ответов здесь ( это в php, это в java, и оба они не были очень полезными, и это , кажется, python3) или снаружи. Так что я хочу что-то вроде этого:

import cloudstorage

files = cloudstorage.list('/bucket/foo/bar')
for file in files:
  # process files

1 Ответ

0 голосов
/ 24 января 2020

Если вы точно знаете, какой путь вам нужен, вы можете использовать listbucket из облачного хранилища. Таким образом, чтобы получить список всех файлов в '/ bucket / foo / bar', используйте:

import cloudstorage

files = cloudstorage.listbucket('/bucket/foo/bar')
for file in files:
  file_name = file.filename
  # process file

Каждый файл в итераторе, возвращаемый из listbucket, равен GCSFileStat instance

Вы также можете отфильтровать файлы по началу имени файла, например, чтобы вывести список всех файлов в предыдущей папке, начинающихся с 'baz':

files = cloudstorage.listbucket('/bucket/foo/bar/baz')

Или перечислить все файлы после test.json:

files = cloudstorage.listbucket('/bucket/foo/bar/test.json')

Чтобы использовать их в unittest, вам потребуется настроить заглушки blobstore и urlfect с тестового стенда:

import unittest
from google.appengine.ext import testbed

class CloudStorageTestCase(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.testbed = testbed.Testbed()
        cls.testbed.activate()

        cls.testbed.init_blobstore_stub()
        cls.testbed.init_urlfetch_stub()

В моих тестах вам понадобятся заглушки urlfetch и blobstore возможность использовать облачный магазин в тестах. Здесь - суть всего файла теста

...