клиентская библиотека Python, которая абстрагирует механизм хранения (GCS / local) - PullRequest
0 голосов
/ 29 августа 2018

Существует ли клиентская библиотека Python, которая может анализировать путь, определять, является ли он локальным или GCS-путем, и соответственно читать / писать? например так что я могу просто передать произвольный путь, и моя бизнес-логика может не зависеть от точного механизма хранения?

API-интерфейс tensflow gfile является одним из вариантов, но может показаться странным, что импорт tenorflow просто используется для использования API gfile.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Если вы хотите быть независимым от механизма хранения, есть PyFilesystem (fs) , который абстрагирует файловые системы, и соединитель для него, fs-gcsfs . Не путать с библиотекой gcsfs от людей, которые делают Dask.

Они имеют несколько отличий, и одно может быть более полезным, чем другое в определенных обстоятельствах. Тем не менее, PyFilesystem one кажется гораздо более «портативным» в том смысле, что интерфейс унифицирован, и я добился большего успеха с ним. В качестве бонуса, если вы достаточно осторожны, вы можете заставить ваше приложение работать с вещами, которые даже не являются настоящими файловыми системами (zip-файлы, MemoryFS и т. Д.)

0 голосов
/ 29 августа 2018

Этого можно добиться, используя schema из urlparse для проверки URL - gsutil использует gs:// для обозначения облачного хранилища, поэтому вы можете использовать некоторую логику оттуда, чтобы определить, какая обработка происходит с файлом.

Альтернативно, общедоступные файлы GCS начинаются с https://storage.googleapis.com, который можно сравнить с netloc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...