IgemUploads 使用文档
For
Version 0.1.1,点此前往GitHub 项目。
igem-uploads包由 HBUT-China 开发,旨在便捷地管理托管在 Igem 服务器上的文件。
1 安装与运行
1.1 安装
请确保您已安装 Python 和 pip,随后使用下列命令安装 igem-uploads:
# 安装包
<div markdown="1" style="margin-top: -30px; font-size: 0.75em; opacity: 0.7;">
:material-circle-edit-outline: 约 1130 个字 :fontawesome-solid-code: 19 行代码 :material-clock-time-two-outline: 预计阅读时间 4 分钟
</div>
pip install igem-uploads # 或 pip3 install igem-uploads
# 验证安装结果 -> 查看已安装包列表中是否存在 igem-uploads
pip list # 或 pip3 list
1.2 简单运行
现在您已经成功的安装了 igem-uploads ,但可能仍缺少部分依赖 -> 简单验证一下吧!
- 随便新建一个
Python文件(就叫test.py好了) -
在
3. 在命令行中使用指令test.py中输入以下内容并保存修改:python test.py尝试运行文件-
若没有输出任何信息,那么恭喜你,可以进入下一步了
-
若提示
No module named 'XXX',则需要执行pip install XXX安装必要依赖-
若缺少多项依赖,您可能需要重复执行本步
-
您也可以下载该文件,随后在对应路径下执行
pip install -r requirements.txt进行一步到胃的补全操作(但通常没有必要)
-
-
2 开始使用
2.1 登录 igem 账号(必要)
在操作文件前,您必须登录您的 Igem 账号(而非 GitLab 账号)
import uploads
client = uploads.Session() # 创建 Session
client.login('igem_username', 'igem_password') # 登录账号
-
输出示例
-
成功登录
-
用户名错误
-
密码错误
-
2.2 开始操作
若提示
'Not logged in, please login first',请在开头补一下用户登录
2.2.1 上传
上传单个文件
client.upload('本机待上传文件(绝对)路径') # 上传至 根路径
client.upload('本机待上传文件(绝对)路径', '目标路径') # 显示上传后父路径下的文件列表
client.upload('本机待上传文件(绝对)路径', '目标路径', false) # 不显示上传后父路径下的文件列表
第一个参数是 绝对 路径
- 返回成功上传的文件 URL
-
输出示例
-
上传成功
[待上传文件名] uploaded [上传后的文件 URL] # 若第三个参数为 false 则不输出以下内容 [父路径] found: [文件+子目录总数] +----------+-------------------+------------------------------------------------------------+ | Type | Name | DirectoryKey/FileURL | +----------+-------------------+------------------------------------------------------------+ -
上传失败
-
第一个参数不是文件
-
上传整个文件夹
第一个参数是 绝对 路径
- 返回上传成功后目标路径下所有 文件+目目录构成的
list - 会 递归创建子目录并上传子目录下的文件
- 不会 为空路径创建文件夹(其实是
Igem不允许存在空路径 orz) -
输出实例
-
上传“成功”
-
第一个参数不是路径
-
2.2.2 删除
删除单个文件
client.delete('文件名') # 删除 根路径 下的文件
client.delete('文件名', '文件父路径') # 显示删除后父路径下剩余的文件列表
client.delete('文件名', '文件父路径', false) # 不显示删除后父路径下剩余的文件列表
-
输出示例
-
删除成功
-
删除失败
-
清空文件夹
输入空串 '' 作为参数将产生类似 rm -rf* 的效果
- 返回清空后目标路径下所有 文件+目目录构成的
list - 会 递归删除所有子目录(及子目录下的所有文件)
- 不会 删除作为参数的目录
- 将显示 完成青空操作后 目标路径下的 文件+目录 列表(理论上是空的)
2.2.3 查询指定路径下的所有文件和目录
- 返回目标路径下所有 文件+目目录构成的
list,形如[{}, {}, ...] - 若需要查询根路径,请输入空串
''作为参数 - 不会 递归查询子目录中的文件
-
输出示例
[路径] found: [文件+子目录总数] +----------+-------------------+------------------------------------------------------------+ | Type | Name | DirectoryKey/FileURL | +----------+-------------------+------------------------------------------------------------+ | File-jpg | 413-1-3.jpg | https://static.igem.wiki/teams/4628/wiki/413-1-3.jpg | +----------+-------------------+------------------------------------------------------------+若显示
[路径] found: 0,您可能需要检查输入路径是否有误
主观评价
上传
Igem自身是支持拖动 文件夹/单个文件 进入网页进行 上传的不会创建新的文件夹,而是把所有文件(包括子目录下的)平铺在当前路径下
igem-uploads包会自动创建文件夹(包括子目录下的) => 好耶删除
其他
Jupyter里用感觉妙妙的(比控制台显示效果更好)print出来了,再返回list感觉有点多余)