Skip to content

Commit 214eb14

Browse files
author
davis.zheng
committed
doc:update README
1. 添加查询文件基本信息head_file的example_demo 2. 每段结尾添加回到目录的锚点 3. 添加说明:解冻归档文件后不能立刻下载文件 4. 添加说明:转换文件不支持冷转热
1 parent ea47db4 commit 214eb14

File tree

1 file changed

+82
-10
lines changed

1 file changed

+82
-10
lines changed

README.md

Lines changed: 82 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ Table of Contents
2222
* [秒传](#秒传)
2323
* [分片上传和断点续传](#分片上传和断点续传)
2424
* [文件下载](#文件下载)
25+
* [查询文件基本信息](#查询文件基本信息)
2526
* [删除文件](#删除文件)
26-
* [解冻](#解冻)
27+
* [解冻归档文件](#解冻归档文件)
2728
* [文件类型转换](#文件类型转换)
2829
* [比较本地文件和远程文件etag](#比较本地文件和远程文件etag)
2930
* [获取文件列表](#获取文件列表)
@@ -48,6 +49,8 @@ UFILE-SDK-PYTHON
4849
├─ufile SDK的具体实现
4950
```
5051

52+
[回到目录](#table-of-contents)
53+
5154
# 安装
5255

5356
## 本地安装
@@ -86,6 +89,8 @@ $ pip uninstall ufile
8689

8790
docs文件夹包含基于sphinx的开发文档生成文件,在此文件夹下可通过运行make html命令可生成build目录,build/html目录即为开发文档。
8891

92+
[回到目录](#table-of-contents)
93+
8994
# 快速使用
9095

9196
```python
@@ -110,7 +115,7 @@ assert resp.status_code == 200
110115
_, resp = ufile_handler.download_file(bucket, put_key, save_file)
111116
assert resp.status_code == 200
112117

113-
# 遍历空间里所有文件
118+
# 遍历空间里文件(默认数目为20)
114119
ret, resp = ufile_handler.getfilelist(bucket)
115120
assert resp.status_code == 200
116121
for object in ret["DataSet"]:
@@ -120,6 +125,7 @@ for object in ret["DataSet"]:
120125
ret, resp = ufile_handler.deletefile(bucket, put_key)
121126
assert resp.status_code == 204
122127
```
128+
[回到目录](#table-of-contents)
123129

124130
# 参数设置
125131

@@ -163,6 +169,8 @@ locallogname = '' #完整本地日志文件名
163169
logger.set_log_file(locallogname)
164170
```
165171

172+
[回到目录](#table-of-contents)
173+
166174
# 示例代码
167175

168176
## 存储空间管理
@@ -202,6 +210,8 @@ bucketname = '' # 待更改的私有空间名称
202210
bucketmanager_handler.updatebucket(bucketname, 'public')
203211
```
204212

213+
[回到目录](#table-of-contents)
214+
205215
## 文件(即对象)管理
206216

207217
### 普通上传
@@ -244,6 +254,8 @@ ret, resp = putufile_handler.putstream(bucket, stream_key, bio)
244254
| 403 | API公私钥错误 |
245255
| 401 | 上传凭证错误 |
246256

257+
[回到目录](#table-of-contents)
258+
247259
### 表单上传
248260

249261
* 说明
@@ -277,6 +289,8 @@ assert resp.status_code == 200
277289
| 403 | API公私钥错误 |
278290
| 401 | 上传凭证错误 |
279291

292+
[回到目录](#table-of-contents)
293+
280294
### 秒传
281295

282296
* 说明
@@ -317,14 +331,15 @@ assert resp.status_code == 404
317331
| 401 | 上传凭证错误 |
318332
| 404 | 文件秒传失败 |
319333

334+
[回到目录](#table-of-contents)
335+
320336
### 分片上传和断点续传
321337

322338
* 说明
323339
* 将要上传的文件分成多个数据块(US3 里又称之为 Part)来分别上传,上传完成之后再调将这些 Part 组合成一个 Object 来达到断点续传的效果。
324340
* 适用场景
325341
1. 大文件(大于1GB)的上传。
326342
2. 恶劣的网络环境:如果上传的过程中出现了网络错误,可以从失败的Part进行续传。其他上传方式则需要从文件起始位置上传。
327-
3. 流式上传:可以在需要上传的文件大小还不确定的情况下开始上传。这种场景在视频监控等行业应用中比较常见。
328343
* demo程序
329344

330345
```python
@@ -373,6 +388,8 @@ while True:
373388
| 403 | API公私钥错误 |
374389
| 401 | 上传凭证错误 |
375390

391+
[回到目录](#table-of-contents)
392+
376393
### 文件下载
377394

378395
* 说明
@@ -421,6 +438,43 @@ assert resp.status_code == 206
421438
| 404 | 下载文件或数据不存在 |
422439
| 416 | 文件范围请求不合法 |
423440

441+
[回到目录](#table-of-contents)
442+
443+
### 查询文件基本信息
444+
445+
* 说明
446+
* 查询文件基本信息:类型、长度、范围、在US3的哈希值。
447+
* demo程序
448+
449+
```python
450+
public_key = '' #账户公钥
451+
private_key = '' #账户私钥
452+
453+
bucket = '' #空间名称
454+
head_key = '' #文件在空间中的名称
455+
456+
from ufile import filemanager
457+
458+
headfile_handler = filemanager.FileManager(public_key, private_key)
459+
460+
# 查询文件基本信息
461+
ret, resp = headfile_handler.head_file(bucket, head_key)
462+
assert resp.status_code == 200
463+
print(resp)
464+
```
465+
466+
* HTTP 返回状态码
467+
468+
| 状态码 | 描述 |
469+
| ------ | -------------------- |
470+
| 200 | 查询文件基本信息成功 |
471+
| 400 | 不存在的空间 |
472+
| 403 | API公私钥错误 |
473+
| 401 | 上传凭证错误 |
474+
| 404 | 文件不存在 |
475+
476+
[回到目录](#table-of-contents)
477+
424478
### 删除文件
425479

426480
* 说明
@@ -451,10 +505,13 @@ assert resp.status_code == 204
451505
| 403 | API公私钥错误 |
452506
| 401 | 签名错误 |
453507

454-
### 解冻
508+
[回到目录](#table-of-contents)
509+
510+
### 解冻归档文件
455511

456512
* 说明
457513
* 用于解冻归档类型的文件。
514+
* 解冻归档文件需要时间,所以归档文件解冻后不能立刻下载。因此如需下载归档文件,请在下载前使用[获取文件列表](#获取文件列表)获取文件状态,若其返回值RestoreStatus为'Restored',则表示该归档文件已完成解冻。
458515
* demo 程序
459516

460517
```python
@@ -464,7 +521,7 @@ private_key = '' #账户私钥
464521
bucket = '' #空间名称
465522
local_file = '' #本地文件名
466523
put_key = '' #上传文件在空间中的名称
467-
ARCHIVE = 'ARCHIVE' #冷存文件类型
524+
ARCHIVE = 'ARCHIVE' #归档文件类型
468525

469526
from ufile import filemanager
470527

@@ -487,15 +544,17 @@ assert resp.status_code == 200
487544
| 状态码 | 描述 |
488545
| ------ | ------------------------------ |
489546
| 200 | 文件解冻成功 |
490-
| 400 | 不存在的空间 或 文件类型非冷存 |
547+
| 400 | 不存在的空间 或 文件类型非归档 |
491548
| 403 | API公私钥错误 |
492549
| 401 | 上传凭证错误 |
493550

551+
[回到目录](#table-of-contents)
552+
494553
### 文件类型转换
495554

496555
* 说明
497-
* 用于转换文件的存储类型,可以任意转换文件为标准、低频、冷存三种存储类型
498-
* 注意:冷存文件如果想转换为其他两种类型必须在解冻期内。
556+
* 用于转换文件的存储类型,可以转换文件为标准、低频、归档三种存储类型
557+
* 注意:现在不支持低频转为标准以及归档转为标准、低频
499558
* demo 程序
500559

501560
```python
@@ -530,9 +589,11 @@ assert resp.status_code == 200
530589
| ------ | --------------------------------------------------- |
531590
| 200 | 文件转换类型成功 |
532591
| 400 | 不存在的空间 |
533-
| 403 | API公私钥错误 或 冷存文件尚未解冻不允许转换文件类型 |
592+
| 403 | API公私钥错误 或 归档文件尚未解冻不允许转换文件类型 |
534593
| 401 | 上传凭证错误 |
535594

595+
[回到目录](#table-of-contents)
596+
536597
### 比较本地文件和远程文件etag
537598

538599
* 说明
@@ -557,6 +618,8 @@ else:
557618
print('etag are different!')
558619
```
559620

621+
[回到目录](#table-of-contents)
622+
560623
### 获取文件列表
561624

562625
* 说明
@@ -582,6 +645,8 @@ for object in ret["DataSet"]:
582645
print(object)
583646
```
584647

648+
[回到目录](#table-of-contents)
649+
585650
### 获取目录文件列表
586651

587652
* 说明
@@ -607,6 +672,8 @@ ret, resp = listobjects_hander.listobjects(bucket, prefix=prefix, maxkeys=maxkey
607672
assert resp.status_code == 200
608673
```
609674

675+
[回到目录](#table-of-contents)
676+
610677
### 拷贝
611678

612679
* 说明
@@ -639,6 +706,8 @@ assert resp.status_code == 200
639706
| 403 | API公私钥错误 |
640707
| 401 | 上传凭证错误 |
641708

709+
[回到目录](#table-of-contents)
710+
642711
### 重命名
643712

644713
* 说明
@@ -652,13 +721,14 @@ private_key = '' #账户私钥
652721
bucket = '' #空间名称
653722
key = '' #源文件在空间中的名称
654723
newkey = '' #目的文件在空间中的名称
724+
force = 'true' #string类型, 是否强行覆盖文件,值为'true'会覆盖,其他值则不会,默认值为'true'
655725

656726
from ufile import filemanager
657727

658728
renameufile_handler = filemanager.FileManager(public_key, private_key)
659729

660730
# 重命名文件
661-
ret, resp = renameufile_handler.rename(bucket, key, newkey, 'true')
731+
ret, resp = renameufile_handler.rename(bucket, key, newkey, force)
662732
assert resp.status_code == 200
663733
```
664734

@@ -672,6 +742,8 @@ assert resp.status_code == 200
672742
| 401 | 上传凭证错误 |
673743
| 406 | 新文件名已存在 |
674744

745+
[回到目录](#table-of-contents)
746+
675747
# 版本记录
676748

677749
[UFileSDK release history](https://github.com/ucloud/ufile-sdk-python/blob/master/CHANGELOG/CHANGELOG-3.2.md)

0 commit comments

Comments
 (0)