代码示例:

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. jQuery Mobile学习日记

    本次主讲人是王思伦啦啦啦~ 框架特性 jQuery Mobile 以“Write Less, Do More”作为目标,为所有的主流移动操作系统平台提供了高度统一的 UI 框架:jQuery 的移动框 ...

  2. Andriod开发环境的发展演变

    安卓早先只能使用JAVA开发应用程序,现在支持多种编程语言,方便了许多程序员,但主流的应该还是JAVA语言.早先安卓开发经常用到eclipse,但自从google 发布了Android studio后 ...

  3. 视频播放用户行为记录之使用Cache的方法

    在上一篇文章http://www.cnblogs.com/ryuasuka/p/3483632.html中,为了获取视频播放时的用户行为,并且要异步地将其写入XML文件中,我采用了先写入log,后生成 ...

  4. Servlet,GenericServlet和HttpServlet的继承关系

    HttpServlet是GenericServlet的子类. GenericServlet是个抽象类,必须给出子类才能实例化.它给出了设计servlet的一些骨架,定义了servlet生命周期,还有一 ...

  5. SQL Server之存储过程基础知识

    什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 那为什么要用存储过程呢?1.存储过程只在创造时进行编译, ...

  6. 【前端】less学习

    Less 是什么? Less is more,than CSS. Less就是搞笑高效编写和维护CSS的一种语法. 1.下载Koala考拉,一款国人编写的less开发器. 2.可以用Sublime T ...

  7. 【codevs1014/1068】背包型动态规划

    分析: 状态转移方程: v[j]=max(v[j],v[j-a[i]]+a[i]) (j ← tol downto a[i]) /* 作者:flipped 题目:p1014 装箱问题 */ #incl ...

  8. C/C++代码中的笔误

    1. 在printf()的参数前加& (2015/10/7) 这是我写的一个数据生成器(generator)片段 +; printf("%d\n", &n);

  9. servlet 中 web.xml

    <servlet> <servlet-mapping> 他们之间的关系可以使一对一,也可是一对多的关系. <servlet> <servlet-name> ...

  10. ActionBar右边菜单按钮的添加

    在res目录下新建文件夹menu,存放men.xml文件 menu.xml <menu xmlns:android="http://schemas.android.com/apk/re ...