python boto和boto3操作bucket的示例

boto操作

import datetime

import boto.s3.connection
from boto.s3.key import Key
conn = boto.connect_s3(
  aws_access_key_id="123456",
  aws_secret_access_key="123456",
  host="127.0.0.1",
  port=8080,
  is_secure=False,
  calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)

str_bucket_name = "bucket_test"
conn.create_bucket(str_bucket_name) # 创建bucket

for bucket in conn.get_all_buckets(): # 获取所有bucket
  # 将实际转为本地时间
  print({"name": bucket.name, "create_date": str(datetime.datetime.strptime(bucket.creation_date, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(hours=8))})

# 删除指定的bucket
for bucket in conn.get_all_buckets():
  if bucket.name == str_bucket_name:
    for key in bucket.list(): # 必须将bucket里清空后,才能删除掉对应的bucket
      bucket.delete_key(key.name)
    conn.delete_bucket(bucket.name)
    break

# 存储文件流或字符串中的数据
key = Key('hello.txt')

key.set_contents_from_file('/tmp/hello.txt')

使用boto进行https的连接失败,  validate_certs设置成True或False没有任何作用

is_secure为Ture时,遇到的报错如下

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)

is_secure为False时,遇到的报错如下

http.client.RemoteDisconnected: Remote end closed connection without response

遂更换了botot3

boto3,下面的示例是用的https的(boto对于https的连接不上,可能是因为我的证书是自制的,所以才找了这个包)

import urllib3
import boto3

urllib3.disable_warnings()

s3 = boto3.resource(
  service_name='s3',
  aws_access_key_id="123456",
  aws_secret_access_key="123456",
  endpoint_url='https://192.168.150.20:8080',
  verify=False
)

str_bucket_name = "bucket_test"
s3.create_bucket(Bucket=str_bucket_name)

for bucket in s3.buckets.all(): # 获取所有bucket
  # 将实际转为本地时间
  print({"name": bucket.name, "create_date": datetime.datetime.strftime(bucket.creation_date + datetime.timedelta(hours=8), "%Y-%m-%d %H:%M:%S")})

# 删除指定的bucket
for bucket in s3.buckets.all():
  if bucket.name == str_bucket_name:
    bucket.objects.all().delete()  # 等价于下面两行
    # for obj in bucket.objects.all():
    #   obj.delete()
    bucket.delete()

# 存储文件流或字符串中的数据
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'))

以上就是python boto和boto3操作bucket的示例的详细内容,更多关于python 操作bucket的资料请关注我们其它相关文章!

(0)

相关推荐

  • aws 通过boto3 python脚本打pach的实现方法

    脚本要实现的功能:输入instance id 1:将所有的volume take snapshot 2:  获取public ip 并登陆机器执行 ps 命令记录patch前进程状态已经端口状态 3:获取机器所在的elb 4:  从elb中移除当前机器 5:检查snapshots是否完成 6:snapshots完成后patching 7:  patching完成后将instance加回到elb #!/usr/bin/python # vim: expandtab:tabstop=4:shiftw

  • Python读写txt文本文件的操作方法全解析

    一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python!\nhello world!\n' >>> f <open file '/tmp/test.txt', mode 'r' at 0x7fb2255efc00> 二.文件的读取 步骤:打开 -- 读取 -- 关闭 >>> f = open('/tmp/test.txt') >>&

  • GitHub上值得推荐的8个python 项目

    GitHub 无疑是代码托管领域的先行者,Python 作为一种通用编程语言,已经被千千万万的开发人员用来构建各种有意思或有用的项目.以下我们会介绍一些使用 Python 构建的GitHub上优秀的项目. 1. Manim GitHub链接: https://github.com/3b1b/manim B站链接:https://space.bilibili.com/88461692 Manim 是一个说明性数学动画引擎,使用 manim你可以创建动画视频,还可以控制用于插图和图表的动画. 这个项

  • python 计算数组中每个数字出现多少次--“Bucket”桶的思想

    题目: 解法一:比较元素是否相等 思路说明: 这种应该是普通人最先想到的解法,先获取到数组之后进行有小到大排序,然后初始化一个min=0(代表新数字的开始角标),然后遍历新数组的每一个元素,如果两个元素不相等,count等于i-min,然后再把i赋值给min,当i遍历到最后一个元素时,count等于数组长度-min(这里的min是上一轮循环后最后一组数字的第一个元素的角标),当然这种解法面试官不会喜欢? (m, n) = input().split() ar = [int(x) for x in

  • Python中的Numpy入门教程

    1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数.如果接触过matlab.scilab,那么numpy很好入手. 在以下的代码示例中,总是先导入了numpy: 复制代码 代码如下: >>> import numpy as np>>> print np.version.version1.6.2

  • Python 字符串操作方法大全

    1.去空格及特殊符号 复制代码 代码如下: s.strip().lstrip().rstrip(',') 2.复制字符串 复制代码 代码如下: #strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr2 3.连接字符串 复制代码 代码如下: #strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr1 4.查

  • 利用python清除移动硬盘中的临时文件

    1.目标场景 用过Mac OS的朋友应该都遇到过,日常的文件操作会在同级目录下产生一些特定的临时文件. 平常将文件夹打包成压缩包或拷贝文件夹到移动硬盘内,临时文件会包含在里面,如果是程序源代码,在Windows系统下编译有时候还会受到影响. 本篇文章的目的是在移动硬盘插入到电脑的同时,利用Python自动化和Windows服务删除掉这些临时文件. 2.编写代码 首先,我们需要循环检测PC的驱动器,判断是否存在可移动的磁盘. # 循环遍历,对每一个驱动器进行判断 while True:      

  • python实现bucket排序算法实例分析

    本文实例讲述了python实现bucket排序算法.分享给大家供大家参考.具体实现方法如下: def bucketSort(a, n, buckets, m): for j in range(m): buckets[j] = 0 for i in range(n): buckets[a[i]] += 1 i = 0 for j in range(m): for k in range(buckets[j]): a[i] = j i += 1 希望本文所述对大家的Python程序设计有所帮助.

  • python boto和boto3操作bucket的示例

    boto操作 import datetime import boto.s3.connection from boto.s3.key import Key conn = boto.connect_s3( aws_access_key_id="123456", aws_secret_access_key="123456", host="127.0.0.1", port=8080, is_secure=False, calling_format=bot

  • python开发App基础操作API使用示例过程

    目录 手机控件查看工具uiautomatorviewer 工具简介 如何使用 APP元素定位操作 通过id定位 通过class定位 通过xpath定位 WebDriverWait 显示等待操作 发送数据到输入框 清空输入框内容: 获取元素的属性值 获取元素在屏幕上的坐标 获取app包名和启动名 APP元素事件操作API swip滑动事件 scroll滑动事件 drag拖拽事件 应用置于后台事件 APP模拟手势高级操作 手指轻敲操作 手指按操作 等待操作 手指长按操作 手指移动操作 手机控件查看工

  • 利用Python中xlwt模块操作excel的示例详解

    目录 一.安装 二.创建表格并写入 三.设置单元格样式 四.设置单元格宽度 五.设置单元格背景色 六.设置单元格内容对齐方式 七.单元格添加超链接 八.单元格添加公式 九.单元格中输入日期 十.合并行和列 十一.单元格添加边框 一.安装 pip install xlwt 二.创建表格并写入 import xlwt # 创建一个workbook并设置编码 workbook = xlwt.Workbook(encoding = 'utf-8') # 添加sheet worksheet = workb

  • python fabric实现远程操作和部署示例

    近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多.修复bug什么的,测试,提交版本库(2分钟),ssh到测试环境pull部署(2分钟),rsync到线上机器A,B,C,D,E(1分钟),分别ssh到ABCDE五台机器,逐一重启(8-10分钟) = 13-15分钟其中郁闷的是,每次操作都是相同的,命令一样,要命的是在多个机器上,很难在本机一个脚本搞定,主要时间都浪费在ssh,敲命令上了,写成脚本,完全可以一键执行,花两分钟看下执行结果 直到,发现了fabri

  • python中的句柄操作的方法示例

    通过窗口标题获取句柄 import win32gui hld = win32gui.FindWindow(None,u"Adobe Acrobat") #返回窗口标题为Adobe Acrobat的句柄 通过父窗口句柄获取子句柄 #parent为父窗口句柄id def get_child_windows(parent): ''' 获得parent的所有子窗口句柄 返回子窗口句柄列表 ''' if not parent: return hwndChildList = [] win32gui

  • Python处理菜单消息操作示例【基于win32ui模块】

    本文实例讲述了Python处理菜单消息操作.分享给大家供大家参考,具体如下: 一.代码 # -*- coding:utf-8 -*- #! python3 import win32ui import win32api from win32con import * from pywin.mfc import window class MyWnd(window.Wnd): def __init__ (self): window.Wnd.__init__(self,win32ui.CreateWnd(

  • Python基于xlrd模块操作Excel的方法示例

    本文实例讲述了Python基于xlrd模块操作Excel的方法.分享给大家供大家参考,具体如下: 一.使用xlrd读取excel 1.xlrd的安装: pip install xlrd==0.9.4 2.基本操作示例: #coding: utf-8 import xlrd #导入xlrd模块 xlsfile=r"D:\workspace\host.xls" #获得excel的book对象 book = xlrd.open_workbook(filename=None, file_con

  • Python 操作 PostgreSQL 数据库示例【连接、增删改查等】

    本文实例讲述了Python 操作 PostgreSQL 数据库.分享给大家供大家参考,具体如下: 我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg2是非常小,快速,稳定的. 您不需要单独安装此模块,因为默认情况下它会随着Python 2.5.x版本一起发布. pip3 install python-psycopg2 pip3 install ps

  • python中pandas库中DataFrame对行和列的操作使用方法示例

    用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使用类字典属性,返回的是S

  • python操作链表的示例代码

    class Node: def __init__(self,dataval=None): self.dataval=dataval self.nextval=None class SLinkList: def __init__(self): self.headval=None # 遍历列表 def traversal_slist(self): head_node=self.headval while head_node is not None: print(head_node.dataval)

随机推荐