首先需要配置密钥和密码
创建配置文件夹
mkdir ~/.aws
创建配置文件
vim ~/.aws/config
[default]
output = json #输出格式
region = ap-northeast-2 #默认区域
创建密钥文件
vim ~/.aws/credentials
[default]
aws_access_key_id = *****
aws_secret_access_key = ****
编写上传脚本
vim
#!/usr/bin/python
import logging
import boto3
from botocore.exceptions import ClientError
def upload_file(file_name, bucket, object_name=None):
"""Upload a file to an S3 bucket
:param file_name: File to upload
:param bucket: Bucket to upload to
:param object_name: S3 object name. If not specified then same as file_name
:return: True if file was uploaded, else False
"""
# If S3 object_name was not specified, use file_name
if object_name is None:
object_name = file_name
# Upload the file
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
def main():
"""Exercise upload_file()"""
# Set these values before running the program
bucket_name = 'test-bucket'
file_name = 'testfile'
object_name = 'testfile'
# Set up logging
logging.basicConfig(level=logging.DEBUG,
format='%(levelname)s: %(asctime)s: %(message)s')
# Upload a file
response = upload_file(file_name, bucket_name, object_name)
if response:
logging.info('File was uploaded')
if __name__ == '__main__':
main()
下载脚本
#!/usr/bin/python
import boto3
import botocore
BUCKET_NAME = 'test-bucket' # replace with your bucket name
KEY = 'testfile' # replace with your object key
s3 = boto3.resource('s3')
try:
s3.Bucket(BUCKET_NAME).download_file(KEY, 'testfile')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
使用aws cli上传下载
#上传
aws s3 cp ./testfile s3://testbucket/
#下载
aws s3 cp s3://testbucket/testfile ./
更多python操作示例
/code-samples/latest/catalog/code-catalog-python-example_code