def fopen(file, mode='r'):
if file == None:
if mode == 'r':
return sys.stdin
elif mode == 'w':
return sys.stdout
else:
# HACK: get boto working with instance credentials via boto3
match = re.match(s3_regex, file)
if match != None:
client = boto3.client('s3')
s3_connection = boto.connect_s3(
aws_access_key_id=client._request_signer._credentials.access_key,
aws_secret_access_key=client._request_signer._credentials.secret_key,
security_token=client._request_signer._credentials.token)
bucket = s3_connection.get_bucket(match.groups()[0])
if mode == 'w':
file = bucket.get_key(match.groups()[1], validate=False)
else:
file = bucket.get_key(match.groups()[1])
return smart_open(file, mode=mode)
评论列表
文章目录