Я пытаюсь использовать функцию 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-адрес в файлоподобный объект, но я недостаточно хорошо понимаю такие вещи, как процесс аутентификации и т. д., и даже не знаю, направляюсь ли я сюда в тупик.Любой совет будет наиболее ценным!