Удаленная запись файлов NETCDF4 в Amazon S3 - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь использовать функцию xtoray .to_netcdf () для удаленной записи массива в файл в корзине Amazon S3 в формате NETCDF4, но я абсолютно не знаю, как это сделать.До сих пор я был в состоянии писать локально, но все это полностью разваливается, когда я пытаюсь предоставить что-то, что не является локальным путем к функции .to_netcdf ().Пример кода приведен ниже.

import boto3
import json
import numpy as np
import xarray as xr

with open('<MY_PATH>/boto_test_credentials', 'r') as f:
secrets = json.load(f)

sn = secrets['service_name']
aaki = secrets['aws_access_key_id']
asak = secrets['aws_secret_access_key']
eu = secrets['endpoint_url']

session = boto3.session.Session()

s3 = session.client(
service_name = sn,
aws_access_key_id = aaki,
aws_secret_access_key = asak,
endpoint_url = eu,
)

x = xr.DataArray(np.random.randn(450, 450))

Тогда, наконец, что-то вроде этого?

x.to_netcdf(<URL_TO_MY_AMAZON_S3_BUCKET>)

Я думал о попытке обмануть функцию .to_netcdf () с помощью модуля urllib дляпреобразовать URL-адрес в файлоподобный объект, но я недостаточно хорошо понимаю такие вещи, как процесс аутентификации и т. д., и даже не знаю, направляюсь ли я сюда в тупик.Любой совет будет наиболее ценным!

...