如何使用AWS 命令行上传文件分段上传大文件

通过 AWS Command Line Interface使用高级别 s3 命令 - AWS Command Line Interface
>> 通过 AWS Command Line Interface使用高级别 s3 命令
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击
to see specific differences applicable to the China (Beijing) Region.
通过 AWS Command Line Interface使用高级别 s3 命令
本节介绍如何使用高级别 aws s3 命令管理 Amazon S3 存储桶和对象。
管理存储桶
高级别 aws s3 命令支持常用存储桶操作,如创建、删除和列出存储桶。
创建存储桶
使用 aws s3 mb 命令可以创建新存储桶。存储桶名称必须唯一,并且应符合 DNS 标准。存储桶名称可以包含小写字母、数字、连字符和点号。存储桶名称只能以字母或数字开头和结尾,连字符或点号后不能跟点号。
$ aws s3 mb s3://bucket-name
删除存储桶
要删除存储桶,请使用 aws s3 rb 命令。
$ aws s3 rb s3://bucket-name
默认情况下,存储桶必须为空,此操作才能成功。要删除非空存储桶,需要包含 --force 选项。
$ aws s3 rb s3://bucket-name --force
这将先删除存储桶中的所有对象和子文件夹,然后删除存储桶。
如果您使用的是受版本控制的存储桶,即其中包含以前删除但仍保留的对象,此命令将不 允许您删除存储桶。
列出存储桶
要列出所有存储桶或其内容,请使用 aws s3 ls 命令。下面是一些常见使用情况示例。
下面的命令列出所有存储桶。
$ aws s3 ls
17:08:50 my-bucket
14:55:44 my-bucket2
下面的命令列出一个存储桶中的所有对象和文件夹(前缀)。
$ aws s3 ls s3://bucket-name
3 MyFile1.txt
下面的命令列出 bucket-name/path 中的对象(即 bucket-name 中按前缀 path/ 筛选后的对象)。
$ aws s3 ls s3://bucket-name/path/
3 MyFile2.txt
高级别 aws s3 命令还可以方便地管理 Amazon S3 对象。这些对象命令包括 aws s3 cp、aws s3 ls、aws s3
mv、aws s3 rm 和 sync。cp、ls、mv 和 rm 命令的用法与它们在 Unix 中的对应命令相同,使您可以跨本地目录和 Amazon S3 存储桶无缝工作。sync 命令同步一个存储桶与一个目录或两个存储桶中的内容。
如果对象很大,所有涉及向 Amazon S3 存储桶(aws s3
cp、aws s3 mv 和 aws s3 sync)上传对象的高级别命令都会自动执行分段上传。
使用这些命令时,无法恢复失败的上传。如果分段上传由于超时而失败,或者通过按 CTRL+C 手动取消,AWS CLI 将会清除创建的所有文件并中止上传。此过程可能耗时数分钟。
如果进程被 kill 命令中断或者由于系统故障而中断,则正在进行的分段上传将保留在 Amazon S3 中,必须在 AWS 管理控制台 中手动清除,或者使用
命令来清除。
cp、mv 和 sync 命令包括一个 --grants 选项,可用来向指定用户或组授予对对象的权限。您可以使用以下语法对权限列表设置 --grants 选项。
--grants Permission=Grantee_Type=Grantee_ID
[Permission=Grantee_Type=Grantee_ID ...]
每个值都包含以下元素:
Permission – 指定授予的权限,可以设置为 read、readacl、writeacl 或 full。
Grantee_Type – 指定被授权者的标识方法,可以设置为 uri、emailaddress 或 id。
Grantee_ID – 根据 Grantee_Type 指定被授权者。
uri – 组 URI。有关更多信息,请参阅
emailaddress – 账户的电子邮件地址。
id – 账户的规范 ID。
有关 Amazon S3 访问控制的更多信息,请参阅。
下面的示例将一个对象复制到一个存储桶中。它授予所有人对对象的 read 权限,向
的关联账户授予 full 权限(read、readacl 和 writeacl)。
$ aws s3 cp file.txt s3://my-bucket/ --grants read=uri=/groups/global/AllUsers full=emailaddress=
要为上传到 Amazon S3 的对象指定非默认存储类(REDUCED_REDUNDANCY 或 STANDARD_IA),请使用 --storage-class 选项:
$ aws s3 cp file.txt s3://my-bucket/ --storage-class REDUCED_REDUNDANCY
sync 命令的形式如下。可能的源-目标组合有:
本地文件系统到 Amazon S3
Amazon S3 到本地文件系统
Amazon S3 到 Amazon S3
$ aws s3 sync &source& &target& [--options]
下面的示例将 my-bucket 中名为 path 的 Amazon S3 文件夹中的内容与当前工作目录同步。s3 sync 将更新与目标中的同名文件的大小或修改时间不同的任何文件。输出显示在同步期间执行的特定操作。请注意,此操作将子目录 MySubdirectory 及其内容与 s3://my-bucket/path/MySubdirectory 递归同步。
$ aws s3 sync . s3://my-bucket/path
upload: MySubdirectory\MyFile3.txt to s3://my-bucket/path/MySubdirectory/MyFile3.txt
upload: MyFile2.txt to s3://my-bucket/path/MyFile2.txt
upload: MyFile1.txt to s3://my-bucket/path/MyFile1.txt
通常,sync 仅在源和目标之间复制缺失或过时的文件或对象。不过,您可以提供 --delete 选项来从目标中删除源中不存在的文件或对象。
下面的示例对上一示例进行了扩展,显示了其工作方式。
// Delete local file
$ rm ./MyFile1.txt
// Attempt sync without --delete option - nothing happens
$ aws s3 sync . s3://my-bucket/path
// Sync with deletion - object is deleted from bucket
$ aws s3 sync . s3://my-bucket/path --delete
delete: s3://my-bucket/path/MyFile1.txt
// Delete object from bucket
$ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt
delete: s3://my-bucket/path/MySubdirectory/MyFile3.txt
// Sync with deletion - local file is deleted
$ aws s3 sync s3://my-bucket/path . --delete
delete: MySubdirectory\MyFile3.txt
// Sync with Infrequent Access storage class
$ aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA
使用 --exclude 和 --include 选项可以指定规则来筛选要在同步操作期间复制的文件或对象。默认情况下,指定目录中的所有项都包含在同步中。因此,仅当指定 --exclude 选项的例外情况(例如,--include 实际上意味着“不排除”)时才需要使用 --include。这些选项按指定顺序应用,如下例所示。
Local directory contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt
$ aws s3 sync . s3://my-bucket/path --exclude '*.txt'
upload: MyFile2.rtf to s3://my-bucket/path/MyFile2.rtf
$ aws s3 sync . s3://my-bucket/path --exclude '*.txt' --include 'MyFile*.txt'
upload: MyFile1.txt to s3://my-bucket/path/MyFile1.txt
upload: MyFile88.txt to s3://my-bucket/path/MyFile88.txt
upload: MyFile2.rtf to s3://my-bucket/path/MyFile2.rtf
$ aws s3 sync . s3://my-bucket/path --exclude '*.txt' --include 'MyFile*.txt' --exclude 'MyFile?.txt'
upload: MyFile2.rtf to s3://my-bucket/path/MyFile2.rtf
upload: MyFile88.txt to s3://my-bucket/path/MyFile88.txt
--exclude 和 --include 选项也可以与 --delete 选项一起使用来筛选要在同步操作期间删除的文件或对象。在这种情况下,参数字符串必须指定要在目标目录或存储桶上下文中包含或排除在删除操作中的文件。下面是一个示例。
Assume local directory and s3://my-bucket/path currently in sync and each contains 3 files:
MyFile1.txt
MyFile2.rtf
MyFile88.txt
// Delete local .txt files
$ rm *.txt
// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.
$ aws s3 sync . s3://my-bucket/path --delete --exclude 'my-bucket/path/MyFile?.txt'
delete: s3://my-bucket/path/MyFile88.txt
// Delete MyFile2.rtf
$ aws s3 rm s3://my-bucket/path/MyFile2.rtf
// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted
$ aws s3 sync s3://my-bucket/path . --delete --exclude './MyFile2.rtf'
download: s3://my-bucket/path/MyFile1.txt to MyFile1.txt
// Sync with delete, local copy of MyFile2.rtf is deleted
$ aws s3 sync s3://my-bucket/path . --delete
delete: MyFile2.rtf
sync 命令还可以接受 --acl 选项,使用该选项可以设置对复制到 Amazon S3 中的文件的访问权限。该选项接受 private、public-read 和 public-read-write 值。
$ aws s3 sync . s3://my-bucket/path --acl public-read
如上文所述,s3 命令集包括 cp、mv、ls 和 rm,它们的用法与它们在 Unix 中的对应命令相同。下面是一些示例。
// Copy MyFile.txt in current directory to s3://my-bucket/path
$ aws s3 cp MyFile.txt s3://my-bucket/path/
// Move all .jpg files in s3://my-bucket/path to ./MyDirectory
$ aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive
// List the contents of my-bucket
$ aws s3 ls s3://my-bucket
// List the contents of path in my-bucket
$ aws s3 ls s3://my-bucket/path/
// Delete s3://my-bucket/path/MyFile.txt
$ aws s3 rm s3://my-bucket/path/MyFile.txt
// Delete s3://my-bucket/path and all of its contents
$ aws s3 rm s3://my-bucket/path --recursive
当 --recursive 选项与 cp、mv 或 rm 一起用于目录/文件夹时,命令会遍历目录树,包括所有子目录。与 sync 命令相同,这些命令也接受 --exclude、--include 和 --acl 选项。
本页内容:
Javascript is disabled or is unavailable in your browser. To use the AWS Documentation, Javascript must be enabled. Please refer to your browser's
Help pages for instructions.登录以解锁更多InfoQ新功能
获取更新并接收通知
给您喜爱的内容点赞
关注您喜爱的编辑与同行
966,690 九月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
在ASP.NET中处理大文件上传
在ASP.NET中处理大文件上传
Robert Bazinet
0&他的粉丝
0&他的粉丝
日. 估计阅读时间:
:Facebook、Snapchat、Tumblr等背后的核心技术
Author Contacted
语言 & 开发
47 他的粉丝
0 他的粉丝
0 他的粉丝
10 他的粉丝
Silverlight
0 他的粉丝
222 他的粉丝
0 他的粉丝
0 他的粉丝
相关厂商内容
相关赞助商
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Re: 关于上传大文件其实国内研究的还是比较多的
Re: 关于上传大文件其实国内研究的还是比较多的
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。您的头条速递已经到达UC从兴趣,发现乐趣广州优视网络 (C) 2017
版权所有网络文化经营许可证:粤网文[0号增值电信服务经营许可证:粤B2-粤ICP备号Linux服务器通过AWS命令行上传文件至S3_服务器应用_Linux公社-Linux系统门户网站
你好,游客
Linux服务器通过AWS命令行上传文件至S3
来源:yestreenstars.&
作者:昨夜星辰
目的Linux服务器通过AWS命令行上传文件至S3
配置打开你的AWS控制台;
在IAM中创建一个新用户(比如test),创建时它会自动创建一个用户安全凭证,是由&访问密钥ID&和&私有访问密钥&组成的,请记住它并下载该凭证,后面会用到它;
选择你刚创建的用户,在&权限&标签下有个&附加权限&,单击它,在列表中找到一个名为&AmazonS3FullAccess&的权限,勾选它,然后单击&附加权限&;
连接你的Linux服务器,按照以下步骤操作。
# 安装pip yum -y install python-pip & # 安装awscli pip install awscli & # 初始化配置 aws configure # 做这一步时系统会要求你输入&访问密钥ID&、&私有访问密钥&、&默认区域名称&、&默认输出格式&,前两个在创建IAM用户时会自动生成,&默认区域名称&最好选择你们EC2所在的区域,如果不清楚自己的EC2所在区域对应的字符串是什么,可参考我下面提供的链接,如果实在不想填也没问题,它会自动选择离你最近的区域,&默认输出格式&可以填json和text格式,默认是json格式。 & # 创建存储桶 aws s3 mb s3://test& # 上传文件到存储桶 aws s3 cp /f s3://test/
通过以上步骤即可完成通过AWS命令行上传文件到S3的目的。更多的帮助信息详见AWS官网:关于AWS区域详见AWS官网:
本文永久更新链接地址:
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 svn命令行上传文件 的文章

 

随机推荐