代码示例:

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. 【Gym 100971A】Treasure Island

    题意 题目链接给你一个地图,'#'代表水,'.'代表陆地,'?'代表擦去的地图,可能是'#'也可能是'.'.地图中本该只有一块相连的陆地,若只有一种方案则输出确定的地图.若有多种方案,则输出‘Ambi ...

  2. 【ZOJ 3609】Modular Inverse

    题 题意 求a关于m的乘法逆元 分析 a x ≡ 1 (mod m) 等价于 ax+my=1 求x的最小正数(不能是0,我就WA在这里了). 当m=1时,或者 gcd(a,m)!=1 时x不存在. 所 ...

  3. BZOJ-1061 志愿者招募 线性规划转最小费用最大流+数学模型 建模

    本来一眼建模,以为傻逼题,然后发现自己傻逼...根本没想到神奇的数学模型..... 1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 ...

  4. BZOJ-3211花神游历各国 并查集+树状数组

    一开始想写线段树区间开方,简单暴力下,但觉得变成复杂度稍高,懒惰了,编了个复杂度简单的 3211: 花神游历各国 Time Limit: 5 Sec Memory Limit: 128 MB Subm ...

  5. php编程常用经验

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数&quo ...

  6. IOS基础之 (三) 类的声明和对象的创建

    一 OC类的声明和实现语法 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end //...表示省略 ...

  7. $root knockout

    http://www.cnblogs.com/rohelm/p/3209757.html 以列表方式呈现数据  处理以数组形式储存的多条数据,要先认识foreach.在ViewModel定义一个Jav ...

  8. sourceinsight安装记录

    sourceinsight安装记录 此文章为本人使用sourceinsight一个星期之后的相关设置步骤记录和经验记录,以备以后查验,网上的相关资料都也较为完善,但是对于新手还是有一定困难的,所以在这 ...

  9. while练习:输入一个班级的人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩。

    Console.WriteLine("请输入班级的总人数:"); int count = int.Parse(Console.ReadLine()); ;//声明一个循环变量来记录 ...

  10. hibernate的pojo和xml文件