用Linux中的命令行访问AmazonS3云存储,带来的好处不只安全

时间:15-01-13 栏目:Linux, 云计算运维, 亚马逊 作者:爱说云网 评论:0 点击: 1,461 次

亚马逊简单存储服务(S3)是亚马逊网络服务公司(AWS)提供的云存储服务中一个重要的组成部分,也是用户使用最为广泛的云存储服务。使用AmazonS3的好处很多,其中最大的三个好处就是安全、可靠、价格低廉。就算您是一个 SAN 专家,喜欢维护硬件资产来存储数据内容,它也可能比您做的更好。在本教程中将介绍如何从Linux中的命令行来访问亚马逊S3云存储。

以下为作者原文。

亚马逊简单存储服务(S3)是亚马逊网络服务公司(AWS)提供的一项云存储服务。亚马逊S3发布了一系列Web服务接口,许多第三方商业服务或客户机软件都是基于这些接口开发而成的。

我在本教程中将介绍如何从Linux中的命令行来访问亚马逊S3云存储。

最流行的亚马逊S3命令行客户软件之一是用python编写的s3cmd(http://s3tools.org/s3cmd)。作为一种简单的AWS S3命令行工具,你想运行诸如每日备份之类的脚本化计划任务时,使用s3cmd再理想不过了。

Linux上安装s3cmd

如果想在Ubuntu或Debian上安装s3cm,运行这个命令:

  1. $ sudo apt-get install s3cmd 

如果想在Fedora上安装s3cmd,运行这个命令:

  1. $ sudo yum install s3cmd 

如果想在CentOS或RHEL上安装s3cm,先从官方网站(http://s3tools.org/repo/RHEL_6/)安装.rpm程序包,然后手动安装。针对64位CentOS或RHEL 6,运行这个命令:

  1. $ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm 

配置s3cmd

你第一次运行s3cmd时,需要运行下面这个命令,对它进行配置:

  1. $ s3cmd --configure 

它会向你提出一系列问题:

  • AWS S3的访问密钥和安全密钥
  • 用于与AWS S3之间来回传输的加密数据的加密密码
  • 用于加密数据的GPG程序的路径(比如/usr/bin/gpg)
  • 是否使用HTTPS协议
  • 如果使用HTTPS协议,HTTP代理的名称和端口

然后配置内容将以明文格式保存在~/.s3cfg中。

s3cmd的基本用法

想列出你的AWS S3帐户中所有的现有存储桶(bucket),运行这个命令:

  1. $ s3cmd ls 
  2.  
  3. 2011-05-28 22:30 s3://mybucket1 
  4.  
  5. 2011-05-29 00:14 s3://mybucket2 

想创建一个新的存储桶,运行这个命令:

  1. $ s3cmd mb s3://dev99 
  2.  
  3. Bucket 's3://dev99/' created 

想把文件上传到一个现有的存储桶,运行这个命令:

  1. $ s3cmd put 1.png 2.png 3.png s3://dev99 
  2.  
  3. 1.png -> s3://dev99/1.png [1 of 3] 
  4.  
  5. 26261 of 26261 100% in 5s 4.33 kB/s done 
  6.  
  7. 2.png -> s3://dev99/2.png [2 of 3] 
  8.  
  9. 201430 of 201430 100% in 2s 98.05 kB/s done 
  10.  
  11. 3.png -> s3://dev99/3.png [3 of 3] 
  12.  
  13. 46630 of 46630 100% in 0s 56.62 kB/s done 

已上传文件的默认访问权限是“private”(私有),这意味着只有你才可以访问这些文件,不过需使用正确的访问密钥和安全密钥。

想把文件上传到拥有公开访问权限的现有存储桶,运行这个命令:

  1. $ s3cmd put --acl-public 4.png s3://dev99 
  2.  
  3. 4.png -> s3://dev99/4.png [1 of 1] 
  4.  
  5. 30778 of 30778 100% in 8s 3.34 kB/s done 
  6.  
  7. Public URL of the object is: http://dev99.s3.amazonaws.com/4.png 

如果授予公开访问权限,任何人都可以访问已上传文件,只要使用任何Web浏览器访问http://dev99.s3.amazonaws.com/4.png。

想查看现有存储桶里面的的内容,运行这个命令:

  1. $ s3cmd ls s3://dev99 
  2.  
  3. 2013-06-02 02:52 26261 s3://dev99/1.png 
  4.  
  5. 2013-06-02 02:52 201430 s3://dev99/2.png 
  6.  
  7. 2013-06-02 02:52 46630 s3://dev99/3.png 
  8.  
  9. 2013-06-02 02:56 30778 s3://dev99/4.png 

想下载现有存储桶里面含有的文件(比如所有的.png文件),运行这个命令:

  1. $ s3cmd get s3://dev99/*.png 
  2.  
  3. s3://dev99/1.png -> ./1.png [1 of 4] 
  4.  
  5. 26261 of 26261 100% in 0s 39.39 kB/s done 
  6.  
  7. s3://dev99/2.png -> ./2.png [2 of 4] 
  8.  
  9. 201430 of 201430 100% in 7s 24.64 kB/s done 
  10.  
  11. s3://dev99/3.png -> ./3.png [3 of 4] 
  12.  
  13. 46630 of 46630 100% in 1s 39.34 kB/s done 
  14.  
  15. s3://dev99/4.png -> ./4.png [4 of 4] 
  16.  
  17. 30778 of 30778 100% in 0s 97.01 kB/s done 

想删除现有存储桶里面的文件,运行这个命令:

  1. $ s3cmd del s3://dev99/*.png 
  2.  
  3. File s3://dev99/1.png deleted 
  4.  
  5. File s3://dev99/2.png deleted 
  6.  
  7. File s3://dev99/3.png deleted 
  8.  
  9. File s3://dev99/4.png deleted 

想获得关于现有存储桶的信息,包括存储桶的存储位置和访问控制列表(ACL),运行这个命令:

  1. $ s3cmd info s3://dev99 
  2.  
  3. s3://dev99/ (bucket): 
  4.  
  5. Location: us-east-1 
  6.  
  7. ACL: dan.nanni: READ 
  8.  
  9. ACL: dan.nanni: WRITE 
  10.  
  11. ACL: dan.nanni: READ_ACP 
  12.  
  13. ACL: dan.nanni: WRITE_ACP 

将文件上传到现有存储桶之前对文件进行加密,运行这个命令:

  1. $ s3cmd -e put encrypt.png s3://dev99 
  2.  
  3. /tmp/tmpfile-pzT1zV3kLZlxDwqA0kwy -> s3://dev99/encrypt.png [1 of 1] 
  4.  
  5. 196890 of 196890 100% in 1s 99.51 kB/s done 

用s3cmd下载已加密文件时,它会自动检测有无加密,一旦下载,就对文件实时进行解密。因而,想下载和访问已加密文件,只要像平常那样运行即可:

  1. $ s3cmd get s3://dev99/encrypt.png 
  2.  
  3. s3://dev99/encrypt.png -> ./encrypt.png [1 of 1] 
  4.  
  5. 196890 of 196890 100% in 1s 131.29 kB/s done 

想删除现有的存储桶,运行这个命令:

  1. $ s3cmd rb s3://dev99 
  2.  
  3. Bucket 's3://dev99/' removed 

请注意:如果存储桶里面不是空的,就没法删除它。

相关文章

云存储架构三种经典流派全解读
views 1333
近日,在UnitedStack组织的存储技术研讨会上,三位来自于UnitedStack、IBM和HP的存储专家分别就UnitedStack文件共享服务、IBM弹性存储和HP Helion VSA进行了深入解读,详细阐述了OpenStack Manila和Ceph、GPFS到弹性存储的演进、VSA和H...
浅淡私有云存储:高效、可靠、安全的存储池...
views 1317
由于众多客户部署技术的模式由内部部署转为外部部署,亚马逊、谷歌和微软等大公司纷纷投入巨资,构建公有云存储解决方案。 云存储服务可以节省成本,因为用户没必要购买及管理自己的基础设施。它还让用户可以提高灵活性,减少存储容量。 但公有云存储并不适合所有类型的数据;出于安全、法律或合规方面的原因,许多企...
云存储:越过安全门槛 才能俘获用户芳心...
views 1336
现如今,随着云存储技术的深入应用,云存储的优势是不言而喻的,然而,目前,云存储却受困扰安全危机,不仅严重影响到云存储发展,也直接影响到用户的使用效果,未来,随着云存储技术的不断发展,安全问题终将得到解决。 云存储   其一、按需使用,按需付费,企业不必承担多余的开销,可以有效降低成本。 ...
专家支招:选择安全云存储的五大要素
views 2152
安全云数据存储服务可以帮助小型企业经济有效地保护数据,但在选择供应商之前,请牢记专家Joe Malec提出的五大注意事项。 曾经安全数据存储只是事后的考虑,现在它已经成为重要的企业功能。在过去,企业业主可以简单地备份日常发票数据到磁带,并将其存储在抽屉里进行保管。而现在,政府法规、日益增长的按...
2020年70%数据将存储在云端
views 1510
“一家大企业的CIO对我说,他想要休息非常简单,只需要删除任何一点点数据,他就能被解聘回家了。”   谈及存储在今天IT产业的地位,希捷科技全球市场与客户总裁RockyPimentel笑着开了这样一个玩笑。玩笑的背后,是数据价值的提升。“特别在大数据分析快速发展的背景下,商业企业都在用更多的数据去抓...
玩转云存储 后期制作巧用搜狐企业网盘...
views 1272
从热映的《撒娇女人最好命》、《太平轮》,到即将推出的《微爱之渐入佳境》。华谊兄弟三箭齐发,迎接贺岁档的到来。银幕上精彩纷呈的背后是国内外制作团队共同努力协作的结果。华谊兄弟通过引入云存储技术,巧妙的利用搜狐企业网盘高效传输、协同办公的特性,将后期制作进行分解,通过国内外不同团队间的合作,让影片的制作...
我们了解的机器学习可能只是冰山一角...
views 1224
随着机器学习受到的关注越来越多,包括Google、Facebook、Microsoft以及百度等科技巨头都投入巨资加大在该领域的开发,一些初创公司也随着机器学习的浪潮而异军突起,本文作者认为也许我们看到的只是冰山一角。 以机器学习而著称的人工智能技术现在正处于白热化阶段,正如我们以前多次提到的那样。...
Linux恶意软件简史
views 1296
  ——那些年困扰Linux的蠕虫、病毒和木马 虽然针对Linux的恶意软件并不像针对Windows乃至OS X那样普遍,但是近些年来,Linux面临的安全威胁却变得越来越多、越来越严重。个中原因包括,手机爆炸性的普及意味着基于Linux的安卓成为恶意黑客最具吸引力的目标之...

用Linux中的命令行访问AmazonS3云存储,带来的好处不只安全:等您坐沙发呢!

发表评论


读者排行