基因组、蛋白组等生物组学数据存储在当下数据量以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校验、日志等。
参考文章:
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