跳转到主要内容

STScI应用常见AWS代码

项目描述

stsci-aws-utils

用于在Amazon Web Services上运行STScI软件的实用工具。

S3

ConcurrentS3Client类使用多个并发HTTP范围请求将S3对象流式传输到内存(BytesIO)。在具有10 Gbps网络连接的m4.10xlarge上的测试中,我们看到了与boto3的S3客户端相比的~3倍加速。客户端凭据和区域配置与boto3相同(环境变量、.aws目录或实例元数据)。

AsyncConcurrentS3Client类似,但具有异步接口。

使用 ConcurrentS3Client 打开 S3 中的 FITS 文件的示例

from stsci_aws_utils.s3 import ConcurrentS3Client
from astropy.io import fits

with ConcurrentS3Client() as client:
    content = client.get_object("some-s3-bucket", "some/key/prefix/some-file.fits")
    hdul = fits.open(content)

请注意,在连续发送请求时,重复使用已打开的客户端比每次都创建一个新的客户端更高效。您可以在不使用上下文管理的情况下创建客户端,但需要自己记住调用 close() 方法

client = ConcurrentS3Client()

# ...

client.close()

否则,您将在 stderr 中看到 aiohttp 写入的神秘错误信息。

如果您发现自己处于不方便关闭客户端的情况(例如实现模块方法),atexit 可以为您提供服务

import atexit

CLIENT = ConcurrentS3Client()
atexit.register(CLIENT.close)

它确保在正常程序退出之前调用 close

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。

源代码分发

stsci_aws_utils-0.1.2.tar.gz (13.7 kB 查看散列)

上传时间

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面