我需要使用在python上运行的lambda函数从s3读取dicom文件。我正在使用pydicom库。我想知道如何使用aws s3的下载URL打开文件。
我尝试过:
pydicom.dcmread(url)
它不起作用
答案 0 :(得分:1)
我使用它来通过Boto3 S3客户端从Lambda中的步进函数中读取来自S3的DICOM文件:
import boto3
import pydicom
# SNIPPET FROM SEVERAL FUNCTIONS
session = boto3.Session()
s3 = session.client('s3')
fileobj = s3.get_object(
Bucket=bucket,
Key=filename
)
# open the file object and read it into the variable dicom_data.
dicom_data = fileobj['Body'].read()
# Read DICOM
dicom_bytes = DicomBytesIO(dicom_data)
dicom_dataset = dcmread(dicom_bytes)
return dicom_dataset, dicom_bytes
您将需要使用Secrets Manager之类的东西来管理会话凭据和S3访问权限,并使用存储桶策略或IAM角色或两者来管理S3。