Нет такой ошибки файла при попытке создать локальный кеш объекта s3

Я пытаюсь использовать Fsspec для создания локального кеша хранилища файлов данных в сегменте публичного доступа на AWS s3. Сегмент общего доступа находится здесь.

Мне на 100% необходимо делать это в локальном файловом кеше, потому что это предназначено для масштабирования, и я не хочу физически загружать каждый отдельный файл. Я пытаюсь сделать это с помощью вызова API fsspec, который использует базовую структуру ботокора. Простой, минимально воспроизводимый пример выглядит так:

импорт fsspec

      url = 'simplecache::s3://noaa-nbm-grib2-pds/blend.20211019/01/core/blend.20211019/01/core/blend.t01z.core.f001.co.grib2
'
of = fsspec.open_local(url, s3={'anon' : True}, filecache={'cache_storage':'/tmp/files'})

Выполнение вышеуказанного воспроизводит ошибку, если установлены все зависимости. Я попытался переключить URL-адрес с помощью адреса ссылки обработанного файла (схема simplecache была основана на некоторой документации fsspec здесь), но это все еще дает следующую ошибку:

      ValueError: open_local can only be used on a filesystem which has attribute local_file=True

Есть ли конкретный URL-адрес, который следует использовать для чего-то вроде этого? Вот прямой URL-адрес объекта (с вставленными круглыми скобками для предотвращения ссылки для немедленной загрузки файла)

      # Remove parenthesis to get full file link which is a direct file download
https://noaa-nbm-grib2-pds.s3.amazonaws.com/blend.20211019/01/core/(blend.t01z.core.f001.co.grib2)

1 ответ

Следующее работает нормально:

      fsspec.open_local("simplecache::https://noaa-nbm-grib2-pds.s3.amazonaws.com/blend.20211019/01/core/blend.t01z.core.f001.co.grib2")

но прямой доступ к файлу через интерфейс s3 не удается с FileNotFound. Это, вероятно, указывает на то, что разрешения настроены неправильно, но fsspec по-прежнему ведет себя так, как вы ожидали.

      >>> s3 = fsspec.filesystem("s3", anon=True)
>>> s3.info("s3://noaa-nbm-grib2-pds/blend.20211019/01/core/blend.20211019/01/core/blend.t01z.core.f001.co.grib2")
FileNotFoundError
Другие вопросы по тегам