基因组、蛋白组等生物组学数据存储在当下数据量以PB暴增的年代,仅仅靠本地存储已经无法满足企业研究院所的数据存储需要。像 Amazon 、阿里云、腾讯云、华为云、谷歌云等云服务商是一个很好的选择,本文主要以 Amazon 为例简单介绍其API(python版)上传数据。

Amazon S3 是一种对象存储服务,其可扩展性、数据可用性、安全性和性能均处于行业领先地位。

安装aws SDK

pip install boto3

上传数据到AWS S3


import logging
import boto3
from botocore.exceptions import ClientError


def upload_file(file_name, bucket, object_name=None):
    """上传数据到S3桶

    :param file_name: 上传文件名(含路径)
    :param bucket: S3存储桶
    :param object_name: 上传后的文件名(如果不指定,默认和原文件一致)
    :return: 成功返回True,失败返回False
    """

    # 文件名(如果不指定,默认和原文件一致)
    if object_name is None:
        object_name = file_name

    # 上传文件
    s3_client = boto3.client('s3')
    try:
        response = s3_client.upload_file(file_name, bucket, object_name)
    except ClientError as e:
        logging.error(e)
        return False
    return True

从S3下载数据到本地


import boto3

s3 = boto3.client('s3')
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

以上便是AWS S3的简单应用。如果后期很多朋友可能要开发云平台之类的工具,请参考官方文档,需要考虑到数据断点续传、MD5校验、日志等。

开发人员指南 HTML | PDF | Kindle

控制台用户指南 HTML | PDF | Kindle

API 参考 HTML | PDF

入门指南 HTML | PDF | Kindle

参考文章:

1.https://aws.amazon.com/cn/s3/

2.https://aws.amazon.com/cn/s3/developer-resources/?nc=sn&loc=6&dn=1

3.https://boto3.amazonaws.com/v1/documentation/api/latest/index.html