python调用aws api操作s3

首先需要配置密钥和密码
创建配置文件夹
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 s3sample.py

#!/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操作示例
https://docs.aws.amazon.com/code-samples/latest/catalog/code-catalog-python-example_code-s3.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值