代码示例:

import logging
#from django.conf import settings import boto
from boto.s3.key import Key
import os
import sys ########################################################################
user="xxx"
aws_access_key_id = "xxx"
aws_secret_access_key = "xxx"
s3_host = "xxx"
deploy_package = user + "_deploy_package"
update_package = user + "_update_package"
######################################################################## logger = logging.getLogger(__name__) class S3_STORAGE(object):
def __init__(self):
self.conn = boto.connect_s3(
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
host=s3_host,
is_secure=False,
calling_format='boto.s3.connection.OrdinaryCallingFormat'
)
self.deploy_package_bucket_name = deploy_package
self.update_package_bucket_name = update_package
self.deploy_package_bucket = self.conn.get_bucket(self.deploy_package_bucket_name)
self.update_package_bucket = self.conn.get_bucket(self.update_package_bucket_name)
def upload_package(self, package_type, package_path):
package_name = os.path.basename(package_path)
#type = package_name.split(".")[-]
if( package_type == "deploy" ):
key = Key(self.deploy_package_bucket, package_name)
elif( package_type == "update" ):
key = Key(self.update_package_bucket, package_name)
key.set_contents_from_filename(package_path)
def download_package(self, package_type, filename, dst_path):
#type = filename.split(".")[-]
if( package_type == "deploy" ):
key = self.deploy_package_bucket.get_key(filename)
elif( package_type == "update" ):
key = self.update_package_bucket.get_key(filename)
key.get_contents_to_filename(dst_path + "/" + filename) if __name__ == "__main__":
if( len(sys.argv)!= and len(sys.argv)!= ):
print("====================================================================================================================")
print("| require: pip install boto==2.43.0")
print("| usage : python s3_storage.py <upload> <deploy | update> <package_path>")
print("| python s3_storage.py <download> <deploy | update> <filename> <dst_path>")
print("| example: python s3_storage.py upload deploy xxx.run")
print("| python s3_storage.py download deploy xxx.run ./")
print("| python s3_storage.py upload update xxx.run")
print("| python s3_storage.py download update xxx.run ./")
print("====================================================================================================================")
sys.exit(-)
elif( len(sys.argv) == ):
type = sys.argv[]
assert( type=="upload" )
package_type = sys.argv[]
package_path = sys.argv[]
package_name = os.path.basename(package_path)
s3_storage = S3_STORAGE()
print("UPLOAD PACKAGE " + package_name + " TO S3 START...")
s3_storage.upload_package(package_type, package_path)
print("UPLOAD PACKAGE SUCCESS...")
elif( len(sys.argv) == ):
type = sys.argv[]
assert( type=="download" )
package_type = sys.argv[]
filename = sys.argv[]
dst_path = sys.argv[]
s3_storage = S3_STORAGE()
print("DOWNLOAD PACKAGE " + filename + " FROM S3 START...")
s3_storage.download_package(filename, dst_path)
print("DOWNLOAD PACKAGE SUCCESS TO " + dst_path + "/" + filename + " ...")

参考资料:

官方文档:http://boto.cloudhackers.com/en/latest/s3_tut.html

http://stackoverflow.com/questions/26415923/boto-get-md5-s3-file

http://www.cnblogs.com/yxpblog/p/5332162.html

推荐:https://www.douban.com/note/315118595/

http://www.cnblogs.com/asmot/p/3939151.html

【Python】使用 boto 调用 S3 对象存储API的更多相关文章

  1. Golang 调用 aws-sdk 操作 S3对象存储

    Golang 调用 aws-sdk 操作 S3对象存储 前言 因为业务问题,要写一个S3对象存储管理代码,由于一直写Go,所以这次采用了Go,Go嘛,快,自带多线程,这种好处就不用多说了吧. 基础的功 ...

  2. 【系统设计】S3 对象存储

    在本文中,我们设计了一个类似于 Amazon Simple Storage Service (S3) 的对象存储服务.S3 是 Amazon Web Services (AWS) 提供的一项服务, 它 ...

  3. 对象存储API

    使用对象存储API步骤: 1.购买腾讯云对象存储(COS)服务 2.在腾讯云 对象存储控制台 里创建一个Bucket 3.在控制器 个人API密钥 页里获取APPID,SecretID,SecretK ...

  4. ceph 007 双向池同步 rgw对象网关配置 s3对象存储

    增量导入导出要基于快照 导出的过程当中害怕镜像被修改所以打快照.快照的数据是不会变化的 镜像级别的双向同步 镜像主到备,备到主.一对一 就算是池模式的双向同步,镜像也具有主备关系 双向同步,池模式 [ ...

  5. s3对象存储

    bkstorages 模块帮助你在蓝鲸应用中使用多种文件存储服务作为后端,用于加速静态资源,管理用户上传文件. 自定静态文件 storage 如果通过修改配置文件满足不了你的需求,你随时可以通过继承 ...

  6. 使用s3fs-fuse 挂载minio s3 对象存储

    minio 是一个aws s3 兼容的对象存储系统,我们可以通过s3fs 进行数据桶的挂载,这样可以做好多方便的事情 环境准备 使用docker-compose 运行 minio docker-com ...

  7. AWS S3 对象存储服务

    虽然亚马逊云非常牛逼,虽然亚马逊云财大气粗,虽然亚马逊用的人也非常多,可是这个文档我简直无法接受,特别是客服,令人发指的回复速度,瞬间让人无语,可是毕竟牛逼.忍了,躺一次坑而已 1.图片上传 1.1 ...

  8. 010 Ceph RGW对象存储

    一.对象存储 1.1 介绍 通过对象存储,将数据存储为对象,每个对象除了包含数据,还包含数据自身的元数据 对象通过Object ID来检索,无法通过普通文件系统操作来直接访问对象,只能通过API来访问 ...

  9. swift对象存储安装

    对象存储服务概览 OpenStack对象存储是一个多租户的对象存储系统,它支持大规模扩展,可以以低成本来管理大型的非结构化数据,通过RESTful HTTP 应用程序接口. 它包含下列组件: 代理服务 ...

随机推荐

  1. Mobile Web

    Silun来给大家介绍几个常见的移动浏览器标签~ 当当当~ <meta name="apple-mobile-web-app-capable" content="y ...

  2. 关于opacity透明度子元素继承现象的若干研究以及hack方法

    [感想]信息时代的信息是有时效性的,今天是确确实实感受到了.互联网资料虽然丰富,但是质量不一,还有大量的跟风雷同,很多人都是随手拷贝过来,根本没有实践.以前端为例,这两年浏览器的迅猛发展,造成很多原有 ...

  3. overlay-2

    <script src="/jquery.js"></script><script type="text/javascript"& ...

  4. 网站性能工具Yslow的使用方法

    Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了博客模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速 ...

  5. Jquery-获取同级标签prev,prevAll,next,nextAll

    1.next([expr]): 获取指定元素的下一个同级元素(注意是下一个同级元素哦) 参数可有可无,参数设定遵循jquery选择器规则 <!DOCTYPE html> <html& ...

  6. c#截图

    private void Form_Load(object sender, EventArgs e){  //接收web url  string colle = string.Empty;  stri ...

  7. 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在

    由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...

  8. Looper

    /** * Class used to run a message loop for a thread. Threads by default do * not have a message loop ...

  9. cannot get gid for group ‘nobody’

    启动php-fpm /data1/server/php-cgi/sbin/php-fpm 错误[28-Mar-2012 11:15:01] ERROR: failed to open configur ...

  10. 比RBAC更好的权限认证方式(Auth类认证)

    Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...