python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中
一、创建终端节点
为什么要创建终端节点,把VPC和S3管理起来呢?如果不将VPC和S3通过终端节点管理起来,那么VPC中EC2实例访问S3存储桶是通过公共网络的;一旦关联起来,那么VPC中EC2实例访问S3存储桶走的就是内部网络。好处有两个:1. 走内部网络就不会产生流量费用;2. 走内部网络速度快,不会因为网络原因导致我们的Python脚本产生异常。
VPC->终端节点->创建终端节点->将VPC和S3关联->关联子网
二、在Windows中安装Python3编译器以及boto3库
2. 双击安装,默认安装路径“C:\Users\用户\AppData\Local\Programs\Python\Python36”
3. 配置环境变量
4. 安装boto3开发库(环境变量配好即可使用pip命令)
三、生成AWS IAM用户密钥并配置
1. IAM->用户->选择具有访问S3权限的用户->安全证书->创建访问安全密钥->下载密钥文件到本地
2. 在Windows实例上配置AWS密钥认证a) 创建~/.aws/credentials 文件,文件内容如下:
[default]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx
b) 创建~/.aws/config 文件,文件内容如下:
[default]
region=cn-north-1
三、编辑Python3脚本,脚本名为“s3_upload.py”import os
import datetime
import boto3
import logging
from boto3.s3.transfer import TransferConfig
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='E:\\xxx\\xxx\\xxx\\aws_upload.log',
filemode='a')
delta = datetime.timedelta(days=2)
now = datetime.datetime.now()
s3 = boto3.client('s3')
bucket_name = 'daily-backup'
file_dir='E:\\xxx\\xxx\\xxx'
GB = 1024 ** 3
# 单个文件大于10GB,需要设置此值
config = TransferConfig(multipart_threshold=5 * GB)
os.chdir(file_dir)
file_list = os.listdir()
for file in file_list:
# 只上传zip文件
if file.endswith('.zip'):
# 上传两天前生成的文件
ctime = datetime.datetime.fromtimestamp(os.path.getctime(file))
if ctime
try:
s3.upload_file(file, bucket_name, file, Config=config)
except Exception as e:
logging.error(e)
logging.error("%s upload failed." % file)
else:
# 上传成功则删除本地文件
logging.info("%s upload successful." % file)
os.remove(file)
四、测试并安排定时任务
1. 在Windows CMD命令行中手动运行刚刚编辑的python脚本
2. 如果成功,则编辑Windows定时任务,每天定时上传本地目录下的文件至S3存储桶中
五、设置S3存储桶生命周期
对于上传到S3存储桶中的文件,我们想定期删除30天以前的文件,我们可以设置存储桶的生命周期,自动删除过期文件。
添加生命周期规则
python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中相关推荐
- bash脚本 文件_如何使用Bash脚本来管理从AWS S3存储桶下载和查看文件
bash脚本 文件 As you can read in this article, I recently had some trouble with my email server and deci ...
- Python爬虫人工智能大数据全栈视频史上最全合辑教程分享!
Python爬虫人工智能大数据全栈视频史上最全合辑教程分享! 毫无疑问Python是这两年最火的编程语言,不仅容易上手,且在多个行业都可应用.尤其今年人工智能及大数据的发展,Python将会展现更多的 ...
- windows ssh传文件linux,利用SSH secure Shell实现windows与linux之间传输文件
在windows下安装SSH secure Shell.默认安装后有两个快捷方式. linux下需要安装openssh-server utuntu默认安装了opens是-client,所以不需要安装, ...
- 【从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上】
从AWS亚马逊平台上的s3存储桶上下载文件到win10电脑上 1.在win10电脑上下载AWS CLI. 2.在cmd命令行输入 aws configure 出现四个要填写的信息. 3.配置好本机和a ...
- mongodb安装_MongoDB:GridFS删除方法删除存储桶中的所有文件
mongodb安装 前一段时间,我们遇到了MongoDB GridFS的奇怪行为,这使我为MongoDB Java驱动程序创建了一个故障单. 今天,我在浏览器书签中找到了指向故障单的链接. 该票证目前 ...
- php aws s3查看所有文件_国内AWS没有文件系统服务,快来看如何通过EC2挂载S3存储桶替代...
作者:光环云 尹晓征 当有需求必须使用共享磁盘服务时,但目前AWS的EFS因为在国内落地的情况,只能通过自建诸如NFS或者GFS等服务来完成,整个过程比较繁杂. S3是互联网的一种存储解决方案,并且借 ...
- MongoDB:GridFS删除方法删除存储桶中的所有文件
不久前,我们遇到了MongoDB GridFS的奇怪行为,这使我为MongoDB Java驱动程序创建了一个故障 单 . 今天,我在浏览器书签中找到了指向故障单的链接. 该票证目前尚未解决,因此我认为 ...
- 大数据 python和java_大数据入门选择Python还是Java?
原标题:大数据入门选择Python还是Java? java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两 ...
- python 常量_大疆机甲大师Python开发: 两只老虎
大疆机甲大师演奏<两只老虎>https://www.zhihu.com/video/1168271599123320832 之前大疆机甲大师Python开发: 中文命名变量初尝试说到跳过了 ...
最新文章
- linux根据服务用YUM查询是由那些软件包安装
- 第三章:3.5 傅里叶变换
- matlab 常用数学函数
- C++静态多态(模版模拟多态)的讨论
- ubuntu下面下載imdb.npz的問題
- 谷歌浏览器之如何调试页面js
- Web控件TreeView展开无闪烁的两个解决方法
- 大话项目管理工具之Confluence篇
- servletContextListener定时任务使用
- GitHub Action 有风险?!
- 安装系统不求人 就算没有光驱和软驱也能行
- C++用I love you!打印心形
- 更多免费资源解压密码_更多免费(几乎免费)法律图片资源
- swift 中构建3DTouch 及 widget
- 360浏览器异常关闭,错过点击恢复,如何重新恢复原有网页?
- 【测评】西圣Ava蓝牙耳机,一款轻便且极具性价比的真无线蓝牙耳机
- iOS CPU VS GPU
- 谷歌seo快速排名优化方法
- 香港三电视台千人默哀 无线换节目亚视停广告
- windows批量移动文件bat脚本