阿里云创建BUCKET脚本
创建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脚本的更多相关文章
- golang对接阿里云私有Bucket上传图片、授权访问图片
golang对接阿里云私有Bucket上传图片.授权访问图片 1.为什么要设置私有bucket 公共读写:互联网上任何用户都可以对该 Bucket 内的文件进行访问,并且向该 Bucket 写入数据. ...
- Centos7一键配置阿里云yum源脚本
Centos7一键配置阿里云yum源脚本 工作中linux系统经常要配置网络yum,故写了一个简单的配置阿里云yum源的的脚本可以单独使用也可以在做自动化部署的时候调用. #!/bin/bash # ...
- 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器
配置域名 在阿里云找到主域名 进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了. 检查nginx安装 首先检查服务 ...
- 阿里云创建RAM子账号
操作步骤 创建子账号 主账号导航至 访问控制 > 用户管理 页面.如下图所示: 单击右上角的 新建用户,如下图所示: 填写弹出框的各配置项,如下图所示: 单击 确定,即可创建子账号. 允许子账号 ...
- 阿里云服务器挖矿脚本bioset攻击解决
1.问题出现 一大早刚起床,阿里云就给我发了一条短信,提醒我服务器出现紧急安全事件:挖矿程序 阿里云“贴心”地提供了解决方法,不过需要购买企业版的安全服务,本着能自己动手就不花钱原则自己搞了起来 于是 ...
- 阿里云CDN边缘脚本EdgeScript公测:简单语法完成CDN复杂配置
CDN可以将源站内容分发至最靠近用户侧的节点,使得用户就近获取内容,提高用户的访问成功率和效率.作为CDN运维工程师,他的日常工作就是通过CDN系统的配置和管理,来确保CDN业务正常运转,以此来保障网 ...
- 阿里云创建CentOS系统设置
1 首先设置你购买的云盘配置,例如cpu,内存,磁盘类型.容量,网络类型等 2.阿里云可以使用浏览器进行远程shell连接 首先需要输入远程密码,第一次连接的时候会提示 一定要牢记 输入密码后进入sh ...
- osx或windows系统下,用ftp上传文件到阿里云虚拟主机脚本
某天突然发现,一直在用的ftp工具并不好用,操作界面太过繁琐,而且不太稳定.于是自己找资料,整合了几句虽然简单,但是方便的代码. mac脚本 #从本地向FTP批量上传文档 需要赋予该.shell文件权 ...
- 烂泥:阿里云RDS本地恢复数据
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司目前使用的数据库是阿里云的RDS,目前RDS的版本为mysql5.6.如下: 现在要 ...
- 没固定公网 IP 的公司内网实现动态域名解析( 阿里云万网解析 )
情景说明 前段时间应公司需求,需要将内网的服务映射到公网.由于公司使用的是类似家庭宽带的线路,没有固定的公网 IP 地址,所以决定使用域名来完成. 当时有几种方案: 1.花生壳:但是目前需要乱七八糟的 ...
随机推荐
- Linux设置字符编码
一.Linux设置字符编码 1.什么是字符编码 字符编码可以实现对非英文字符的支持,防止非英文字符的乱码. 2.国内常用的字符编码 UTF-8 GBK 3.设置字符编码 我们可以对Linux系统的字符 ...
- MyBatis(RowBounds)分页了解内容
RowBounds 不在使用SQL实现分页 1.接口 List<User> getUserByRowBounds(); 2.mapper.xml <select id="g ...
- salesforce零基础学习(一百二十九)Lead Convertion 有趣的经历
本篇参考:https://help.salesforce.com/s/articleView?id=000382564&type=1 Lead Convertion 是salesforce中s ...
- Nextcloud登录界面输入用户名和密码后报内部故障
查询~/nextcloud/data/nextcloud.log,找到日志报出如下错误 "Something is wrong with your openssl setup: error: ...
- 四 APPIUM GUI讲解(Windows版)(转)
Windows版本的APPIUM GUI有以下图标或者按钮: ·Android Settings - Android设置按钮,所有和安卓设置的参数都在这个里面 ·General Settings – ...
- golang1.21新特性速览
经过了半年左右的开发,golang 1.21 在今天早上正式发布了. 这个版本中有不少重要的新特性和变更,尤其是在泛型相关的代码上. 因为有不少大变动,所以建议等第一个patch版本也就是1.21.1 ...
- Linux系统启动jmeter可视化界面
目的:方便在Linux系统调试jmeter脚本.操作:Linux启动jmeter可视化界面,不能使用root用户,需要创建新用户,切换到新用户启动jmeter. 1. 创建用户 创建一个新的系统用户. ...
- salesforce零基础学习(一百三十)Report 学习进阶篇
本篇参考: https://help.salesforce.com/s/articleView?id=sf.reports_summary_functions_about.htm&type=5 ...
- WPF 入门笔记 - 08 - 动画
感谢大家对上篇博文的支持 回到正题,今天和大家分享下学习动画过程中的内容.动画对我来讲还是蛮新鲜的,大家知道在接触WPF之前我只用过Winform,而Winform中并没有动画的概念,当想要实现某些& ...
- Gopher进阶神器:拥抱刻意练习,从新手到大师。
发现一个非常友好的工具,帮助我们回顾练习过程,设定目标,并提供丰富多样的Gopher主题练习题. 刻意练习:从新手到大师. Carol 心理学家 Carol Dweck 做过一个实验,她找了一些十岁的 ...