# async_cow **Repository Path**: xixigroup/async_cow ## Basic Information - **Project Name**: async_cow - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 25 - **Forks**: 1 - **Created**: 2021-03-31 - **Last Updated**: 2024-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Async Cow Python 七牛异步SDK 本SDK基于官方SDK改造而成,但又对其进行了进一步封装,简化了相关操作 例如: - 1、不需要使用者关心token问题 - 2、简化了相关导包和引用,并且保持接口一致 - 3、实现了异步IO,引入协程概念,IO层面引入aiohttp,aiofiles等,使得本SDK适用于异步编程 感谢您的星星❤ [官方SDK请见] https://developer.qiniu.com/kodo/1242/python ## 组织: QQ群: 614714752 ## Install python解释器版本要求:> 3.6 ```bash # 标准安装 pip install async_cow # 从官方源安装,你能获取最新版本SDK pip install async_cow -i https://pypi.python.org/simple ``` ## Usage ### 初始化 在你需要的地方 ```python from async_cow import AsyncCow, ClientCow cow = AsyncCow(, ) client = ClientCow(, ) ``` ### 云存储桶操作 ```python b = cow.get_bucket() ``` 后面都用这个桶对象来操作。 它代表了`` #### 列出所有的bucket ```python res = await b.buckets() ``` #### 列出一个bucket中的所有文件 ```python res = await b.list() ``` 这个方法还有 marker, limit, prefix这三个可选参数,详情参考官方文档 bucket相关方法和用法和官方SDK同步 #### 上传 ```python file_path = '/Users/admin/Desktop/123.jpg' with open(file_path, 'rb') as f: c = f.read() # 上传二进制流 res = await b.put_data( key='AK47.jpg', # 上传后的文件名 data=c ) # 上传文件 res = await b.put_file( key='AK472.jpg', # 上传后的文件名 file_path=file_path ) for i in res: print(i) ``` #### 删除,查看文件信息 ```python await b.stat('a') # 查看单个文件信息 await b.delete('a') # 删除单个文件 ``` #### 拷贝,移动(改名)经测试,只能在桶内copy和move 这两个操作需要提供源文件名和目标文件名 ```python await b.copy('a', 'b') # 将'a' 拷贝至'b' await b.move('a', 'b') # 将'a' 改名为'b' ``` 有没有觉得比官方SDK容易使用多呢? -------- #### 异常 在封装aiohttp操作时已经处理了大部分异常和重试过程,但仍会存在一些意外 所以安全的做法是这样: ```python try: await b.delete('a') except Exception as e: # 自行处理 pass ``` ### 短信客户端操作 ```python # 获取一个短信客户端对象 sms = cow.get_sms() ``` #### 创建,查看,编辑,删除签名 ```python await sms.createSignature(, ) await sms.querySignature() await sms.updateSignature(, ) await sms.deleteSignature() ``` #### 创建,查看,编辑,删除模版 ```python await sms.createTemplate(,