Metadata-Version: 2.1
Name: async_cow
Version: 0.4.0
Summary: Network Development Suite
Home-page: https://gitee.com/xixigroup/wintersweet
Author: Xixi.Dong
Author-email: xq1889@163.com
License: Apache License Version 2.0
Description: # Async Cow Python 七牛异步SDK
        
        本SDK基于官方SDK改造而成，但又对其进行了进一步封装，简化了相关操作
        例如：
        - 1、不需要使用者关心token问题
        - 2、简化了相关导包和引用，并且保持接口一致
        - 3、实现了异步IO，引入协程概念，IO层面引入aiohttp，aiofiles等，使得本SDK适用于异步编程
        
        [官方SDK请见] https://developer.qiniu.com/kodo/1242/python
        
        ## 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.auth import AsyncCow
        cow = AsyncCow(<ACCESS_KEY>, <SECRET_KEY>)
        ```
        获取一个指定的桶
        ```python
        b = cow.get_bucket(<BUCKET>)
        ```
        
        后面都用这个桶对象来操作。 它代表了`<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
        ```
        
        
        ## 测试
        
        1.  首先从github clone项目到本地
        2.  在项目中有example供测试，配置好main.py中的access_key、secret_key、bucket以及file_path参数后即可开始测试
        
        
        ## 组织:
          QQ群: 614714752
          <img src='https://gitee.com/xixigroup/async_cow/raw/master/images/qq.jpeg' width='200'>
        
        特别鸣谢：[Hagworm](https://gitee.com/wsb310/hagworm) 以及七牛官方
        
        欢迎大佬指正！感谢您的星星❤
Platform: all
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >= 3.6
Description-Content-Type: text/markdown
