阿里云创建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.花生壳:但是目前需要乱七八糟的 ...
随机推荐
- Geo
Geo 应用情景 打车时寻找半径在多少范围的司机 查找附近的酒店,微信摇一摇 Linux中文乱码如何处理? redis-cli --raw docker: docker exec -it redis ...
- c语言分析和循坏对应的汇编定义格式(Debug版本)
c语言if单分支结构所对应的汇编代码结构 #include "stdafx.h" int main(int argc, char* argv[]) { if(argc > 8 ...
- docker 镜像与容器存储目录结构
目录列表及大小示例-20220314 root@dewan01:/var/lib/docker# du -sh * 88K buildkit 72K containers 884K image 60K ...
- 2023-7-27 WPF自定义命名空间在xaml中的使用
xaml自定义命名空间 [作者]长生 为啥要用自定义命名空间 这是常见的几种命名空间 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/ ...
- 安装.NET Framework4.5以上版本受阻怎么办?
安装和卸载 .NET Framework 受阻疑难解答 - .NET Framework | Microsoft Learn Windows RT 8.1.Windows 8.1 和 Windows ...
- node:windows script host 錯誤 console未定义
错误背景 在开发npm包时,碰到此项报错 解决方案 选中任意js文件,选择打开方式,指定到node中即可
- Windows 下搭建 Appium + Android+python 自动化测试环境
前言 本来并不打算写这么一篇文章,但是实践下来发现网上的各种教程里大致有两个问题.一是文章有些跟不上时代,目前android开发和测试的技术更新都比较快,内容有些过期.二是细节部分不是太完整,拼拼凑凑 ...
- 一文了解react中定义样式(css/less/sass)的常用方法
react中通过jsx的语法方式,将html标签和js语法联系在一起,而css的编写方式,没有明确的指定编写方式,目前就有很多不同方法,每个方式各有其优缺点,我们一起来看看常用的定义方式有哪些. 最基 ...
- Dokcer学习之旅(1)——运行一个简单的容器
基本概念 镜像 我们都知道,操作系统分为 内核 和 用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 ...
- go语言环境要这样搭建才"省钱"
go语言环境要这样搭建才省钱 目录 go语言环境要这样搭建才省钱 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 ...