用pydicom从s3存储桶读取dicom文件

时间:2019-06-03 23:23:37

标签: python amazon-web-services amazon-s3 dicom pydicom

我需要使用在python上运行的lambda函数从s3读取dicom文件。我正在使用pydicom库。我想知道如何使用aws s3的下载URL打开文件。

我尝试过:

pydicom.dcmread(url)

它不起作用

1 个答案:

答案 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。