python操作s3服务中的文件
亚马逊云aws提供了s3服务。国内一些云厂商也用了s3技术。要操作s3服务器中的文件需要用到boto这个python包。下面的代码是一个简单例子。
#! /usr/bin/python
# -*-coding:utf-8-*
from boto.s3.key import Key
from boto.s3.connection import S3Connection
import os
########################################################################
user = "xxxxx"
aws_access_key_id = "xxxxxxxxxxxx"
aws_secret_access_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
host_ip = "114.114.114.114"
port=114
########################################################################
'''
OrdinaryCallingFormat:自己安装有s3服务的服务器一般用这个
SubdomainCallingFormat:host名中含有amazon类似的词语的一般用这个
'''
class S3(object):
def __init__(self, ):
self.conn = S3Connection(
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
host=host_ip,
port=port,
is_secure=False,
calling_format='boto.s3.connection.OrdinaryCallingFormat'
)
self.bucket_name = 'bucket_xxxx'
try:
self.bucket = self.conn.get_bucket(self.bucket_name)
except:
self.bucket = self.conn.create_bucket(self.bucket_name)
def upload_packetage(self, package_path):
package_name = os.path.basename(package_path)
package_key = Key(self.bucket, package_name)
if package_key.exists():
package_key.delete()
else:
packege_key.set_contents_from_filename(package_path)
return
def rename_package(self, package_old_name, package_new_name):
package_old_key = Key(self.bucket, package_old_name)
package_new_key = Key(self.bucket, package_new_name)
if package_old_key.exists() and (not package_new_key.exists()):
package_old_key.copy(self.bucket, package_new_key)
if package_new_key.exists():
package_old_key.delete()
return
def delete_packetage(self, package_name):
package_key = Key(self.bucket, package_name)
if package_key.exists():
package_key.delete()
else:
raise ValueError('package:%s are not exist' % package_name)
return
if __name__ == "__main__":
#S3().upload_package("/home/text.txt")
#S3().delete_package("text.txt")
#S3().rename_package("text.txt", "text1.txt")
pass
python操作s3服务中的文件的更多相关文章
- python操作s3 -- boto2.x
以下是python操作s3常用方法: boto s3手册:http://boto.readthedocs.org/en/latest/ref/s3.html boto s3快速入门:http://bo ...
- Python批量修改Excel中的文件内容
import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None): return os.path.join ...
- python基础:os模块中关于文件/目录常用的函数使用方法
Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...
- 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法
引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...
- Python编写在Maya中查看文件列表的插件
之前写过一篇用Python遍历文件夹的文章,今天把代码扩展一下,做成一个有UI用户界面的Maya插件,可以直接在Maya中运行: 功能是显示磁盘分区目录下的文件列表,通过定制也可以查看任意目录下的文件 ...
- python 从filelist.txt中拷贝文件到另一文件夹中
#! python #coding:utf-8 ##!/usr/bin/python # Filename : fileCp.py import sys import os import shutil ...
- Python 操作 Excel 、txt等文件
#xlrd 读取excel import xlrd import os #获取文件路径 filepath = os.path.join(os.getcwd(),'user_info') #获取文件名称 ...
- python 开启http服务并下载文件
Python <= 2.3python -c "import SimpleHTTPServer as s; s.test();" 8000 Python >= 2.4p ...
- python操作从数据库中获取数据的接口
1.输入一个表名,获取表里面的数据 2.判断用户是否存在,如果不存在就添加到数据库里面
随机推荐
- ubuntu中nfs安装
Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件. 1.安装软件包 sudo apt-get install nfs-common nfs- ...
- Md5实例
MD5实例 我的md5源码 当我们对数据进行操作时,存储到数据库时,有时候不希望别人能够看到,通过md5能够实现对数据的加密. java代码 ```javaimport org.springframe ...
- 《计算机网络 自顶向下方法》 第2章 应用层 Part1
常见的应用层协议有哪些? HTTP(HyperText Transfer Protocol):超文本传输协议 FTP(File Transfer Protocol):文件传输协议 SMTP(Sim ...
- 三、netcore跨平台之 Linux配置nginx负载均衡
前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi. 这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,所以这一章我就不会一个个截图了. 因为本人 ...
- 在校生如何面向面试地学习Java
最近我在博客园里,看到不少在校的同学在学java,而且,在我最近举办的一次直播活动中,也有不少在校生同学来提问,java该怎么学. 对于那些已经工作的同学,哪怕才工作不久,毕竟也能从项目实践里总结和探 ...
- mysql 导出 导入
一.导出 windows下 切换到mysql安装目录bin目录下 导出 数据库lz_garden 下的 所有表结构 到d盘并命名为lz_garden.sql: D:\dev\MySQL\MySQL S ...
- for循环的更多写法
在看设计模式这本书,遇到一个令人疑惑的for循环语句 for (var i = 0, type;type = ['String', 'Array', 'Number'][i++]) { 代码块 } 比 ...
- sqlserver2008 R2 安装以后没有 sql server profiler
一些人在安装好SQL server 2008 r2或者从empress升级到enterprise或者开发版之后没有SQL server profiler功能,如果需要加装则应该找到自己的安装文件(部分 ...
- mac系统下docker安装配置mysql详细步骤
上文介绍了MacOS安装Docker傻瓜式教程,安装好后第一件事就决定把本地数据库迁移过来,那么首先就得安装mysql,下面就开始我们的安装之旅吧. 一.docker配置镜像加速器 我们使用docke ...
- scrapy抓取中国新闻网新闻
目标说明 利用scrapy抓取中新网新闻,关于自然灾害滑坡的全部国内新闻:要求主题为滑坡类新闻,包含灾害造成的经济损失等相关内容,并结合textrank算法,得到每篇新闻的关键词,便于后续文本挖掘分析 ...