centos6.8 上传文件到amazon s3
centos6.8 上传文件到amazon s3
0.参考
Possible to sync a single file with aws s3 sync?
How to Install Python 2.7.15 on CentOS/RHEL 7/6 and Fedora 27/26/25
Downloading folders from aws s3, cp or sync?
1、安装python 2.7 、 pip和aws工具
1.1 安装python 2.7
pip is already installed if you are using Python 2 >=2.7.9 or Python 3 >=3.4 downloaded from python.org or if you are working in a Virtual Environment created by virtualenv or pyvenv. Just make sure to upgrade pip.
因为pip只支持python 2.7,centos 6.8默认安装的python版本比较旧,需要安装新版本的python,方法详细见参考链接。
1.2 安装 pip
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
sudo python2.7 get-pip.py
不指定python版本的话,会有以下出错有类似以下出错:
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==10.0.0b2', 'console_scripts', 'pip')()
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 299, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2229, in load_entry_point
return ep.load()
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1948, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/usr/lib/python2.6/site-packages/pip-10.0.0b2-py2.6.egg/pip/_internal/__init__.py", line 42, in <module>
from pip._internal import cmdoptions
File "/usr/lib/python2.6/site-packages/pip-10.0.0b2-py2.6.egg/pip/_internal/cmdoptions.py", line 16, in <module>
from pip._internal.index import (
File "/usr/lib/python2.6/site-packages/pip-10.0.0b2-py2.6.egg/pip/_internal/index.py", line 526
{str(c.version) for c in all_candidates},
^
SyntaxError: invalid syntax
1.3 安装awscli
python2.7 /usr/local/bin/pip install awscli --upgrade --user
因为默认的python还是用旧版本,如果直接用pip install awscli ,会有类似以下的出错:
/usr/local/bin/pip: line 4: import: command not found
/usr/local/bin/pip: line 5: import: command not found
/usr/local/bin/pip: line 7: from: command not found
/usr/local/bin/pip: line 10: syntax error near unexpected token `('
/usr/local/bin/pip: line 10: ` sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])'
2. 利用aws上传到s3
2.1 输入aws configure进行配置
AWS Access Key ID [None]: XXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: us-east-2
Default output format [None]: text
Access Key和Secret Access Key存在/.aws/config和/.aws/credentials,必要时可以用vim打开查看,避免因为拷贝了特殊字符,而产生以下出错:
fatal error: An error occurred (InvalidAccessKeyId) when calling the ListObjects operation: The AWS Access Key Id you provided does not exist in our records.
region字段必须填写,否则会出现以下报错:
fatal error: Could not connect to the endpoint URL: "https://xxx.s3.None.amazonaws.com/?prefix=&encoding-type=url"
region具体填写内容可以参考s3 console里的链接,比如登录s3 console,链接比是:https://s3.console.aws.amazon.com//xxxx/xxxx/?region=us-east-2,region就填写:us-east-2。region具体内容见参考链接。
2.2 用户环境配置
需要把aws加到PATH,如把以下加到~/.bashrc:
export PATH=~/.local/bin:$PATH
如果root也要需要执行aws,则root的.bashrc也要添加上述语句。
2.3 使用sudo相关配置
因为sudo会出剔除一些额外添加的PATH,所以在脚本中添加aws命令,再用sudo使用,会有以下报错:
Traceback (most recent call last):
File "/home/xxx/.local/bin/aws", line 19, in <module>
import awscli.clidriver
ImportError: No module named awscli.clidriver
所有在sudo脚本中需要执行以下两个export:
export PATH=/home/xxx/.local/bin:$PATH
export PYTHONPATH=/home/xxx/.local/lib/python2.7/site-packages:$PYTHONPATH
...
aws s3 cp xxx.py s3://xxx/xxx/
3 使用方法
# 同步目录
aws s3 sync . s3://xxx
# 同步文件
aws s3 cp xx s3://xx
# 同步文件到子目录,最后一定要加上"/"
aws s3 cp xx s3://xx/xx/
# 刷新CDN distribution-id可以在后台查看
aws cloudfront create-invalidation --distribution-id=xxxx --paths "/*"
其它命令使用方法见参考链接。
centos6.8 上传文件到amazon s3的更多相关文章
- Mac安装aws-cli全过程,通过命令行上传文件到aws s3协议服务器
第一次使用aws,首先查询了各种资料,我第一步需要做的是安装aws-cli,而安装aws-cli之前需要安装python3,当然你安装python3之前你还需要安装homebrew,当然我正在安装的过 ...
- Amazon S3 上传文件 SSL23_GET_SERVER_HELLO握手错误
题外话:今天偶尔来逛逛,发现我真是懒到家了.居然有半年前的留言我都没有来看过,真对不起留言的同学,希望他的问题已经解决了. 这两三天一直被亚马逊S3上传文件的问题困扰着,直到昨天晚上终于搞定了,工作群 ...
- AWS S3 递归上传文件和递归下载文件, 以及S3之间拷贝文件夹
1. 递归上传文件: aws s3 cp 本地文件夹 s3://bucket-name -- recursive --region us-east-1 2. 递归下载S3上的文件夹: cd 本地下载 ...
- 上传文件到aws的s3存储
只要有aws-cli客户端就可以上传文件到aws的S3存储.可以在任意机器上.这里以centos为例. 1.安装python.pip. # yum install -y python python-p ...
- Linux系统通过AWS命令行上传文件至S3
打开你的AWS控制台: 在IAM中创建一个新用户(比如test),创建时它会自动创建一个用户安全凭证,是由“访问密钥ID”和“私有访问密钥”组成的,请记住它并下载该凭证,后面会用到它: 选择你刚创建的 ...
- 实现多线程异步自动上传本地文件到 Amazon S3
最近抽空做个小工具,使用AWSSDK 对本地文件目录监控,并自动同步上传文件到S3 的过程,使用的是多线程异步上传,针对大文件进行了分块 参考文献: https://www.codeproject.c ...
- Laravel 上传文件处理
文件上传 获取上传的文件 可以使用 Illuminate\Http\Request 实例提供的 file 方法或者动态属性来访问上传文件, file 方法返回 Illuminate\Http\Uplo ...
- aws上传文件、删除文件、图像识别
目录 aws的上传.删除s3文件以及图像识别文字功能 准备工作 安装aws cli 初始化配置AWS CLI s3存储桶开通 图像识别文字功能开通 aws的sdk 上传文件 方法一 方法二 删除文件 ...
- Windows下使用xShell向远程Linux上传文件
上传文件使用rz与sz命令,远程Linux系统上需要安装lrzsz工具包 下载安装包lrzsz-0.12.20.tar.gz: http://www.linuxidc.com/Linux/2010- ...
随机推荐
- Oracle COALESCE函数
Oracle COALESCE函数 Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为 ...
- json字符串转map、json数组演示
公司项目用的IBM封装的json解析,此处采用阿里的fastjson进行演示,代码如下: package com.alphajuns.test; import com.alibaba.fastjson ...
- Day03:日期操作 / 集合框架(上)
日期操作 Java中的时间 · Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点: · 固定的时间点叫纪元(epoch),是U ...
- SpringCloud(0) 外行人都能看懂的SpringCloud,错过了血亏!
一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringCloud的一些基础的 ...
- php导出excel方法: 所有语言通用
后端: //导出if($_GPC['export']==1){ $list_export = pdo_fetchall($sql.$where); include $this->templa ...
- Pandas时间序列和分组聚合
#时间序列import pandas as pd import numpy as np # 生成一段时间范围 ''' 该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start.e ...
- Linux 概念与快捷方式
概念 何为shell Shell 是指"提供给使用者使用界面"的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe .普通意义上的 Shel ...
- NumPy进阶
数组算术 任何两个等尺寸数组之间的算术操作都应用了逐元素操作的方式. arr1 = np.array([[1,2,3],[4,5,6]]) arr2 = np.array([[4,2,1],[7,2, ...
- 【B2B】01-BFS
纠正我对 01-BFS 问题的错误认识. 我一直以为对于 01-BFS,每次点 $u$ 出队时,对于 $u$ 的邻接边表中的边,只要先松弛边权为 0 的边再松弛边权为 1 的边就能保证每个点只入队一次 ...
- 常用的 Git 命令,给你准备好了!
分支操作: git branch 创建分支 git branch -b 创建并切换到新建的分支上 git checkout 切换分支 git branch 查看分支列表 git branch -v 查 ...