Skip to content

Commit 41d7859

Browse files
committed
Merge pull request qiniu#33 from qiniu/develop
Release v6.0.4
2 parents 6a326a3 + 24ae3aa commit 41d7859

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
## CHANGE LOG
22

3+
### v6.0.4
4+
5+
2013-07-05 issue [#33](https://github.com/qiniu/sdkspec/pull/33)
6+
7+
- 补充 ListPrefix 的标准用法
8+
- 增加 单元测试环境(test-env.sh) 规范
9+
- 增加 服务端上传(rsutil)模块规范
10+
11+
312
### v6.0.3
413

514
2013-07-02 issue [#32](https://github.com/qiniu/sdkspec/pull/32)

IMPL.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,24 @@ docs/ - 文档所在目录
99
tests/ - 单元测试目录,有的语言习惯叫 test 目录。这个建议遵循社区惯例。
1010
README.md - 项目说明文档
1111
CHANGELOG.md - 更新日志
12+
test-env.sh - 测试环境脚本
1213
.travis.yml - Travis-CI 配置文件
1314
```
1415

16+
## 单元测试环境
17+
18+
要运行单元测试,需要先准备单元测试环境(test-env.sh)。此文件默认内容如下:
19+
20+
```
21+
export QINIU_ACCESS_KEY="<Please apply your access key>"
22+
export QINIU_SECRET_KEY="<Dont send your secret key to anyone>"
23+
export QINIU_TEST_BUCKET="<Bucket that run your test cases>"
24+
export QINIU_TEST_DOMAIN="<Domain that binding to your test bucket>"
25+
```
26+
27+
SDK 的用户需要先修改此文件,配置上相关的信息,然后 source test-env.sh,就可以正确运行所有单元测试了。test-env.sh 的内容仅限于用户通过 SDK 无法完成的一些管理性操作,比如创建空间(bucket)、关联域名(domain)等等。
28+
29+
1530
## Travis-CI
1631

1732
不同语言的 .travis.yml 文件略有不同,但是他们都需要有:

README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,28 @@ type ListItem struct {
156156
}
157157
```
158158

159+
这个 `ListPrefix` 的标准用法如下:
160+
161+
```{go}
162+
import "qiniu/api/rsf"
163+
164+
func listAll(rs rsf.Client, bucket, prefix string, limit int) {
165+
166+
var items []rsf.ListItem
167+
var marker string
168+
var err error
169+
for err == nil {
170+
items, marker, err = rs.ListPrefix(bucket, prefix, marker, limit)
171+
for _, item := range items {
172+
... // 处理item
173+
}
174+
}
175+
if err != rsf.EOF {
176+
... // 错误处理
177+
}
178+
}
179+
```
180+
159181
范围:仅在服务端使用
160182

161183

@@ -301,3 +323,53 @@ func (this Exif) MakeRequest(url string) (imageExifUrl string)
301323

302324
范围:客户端和服务端
303325

326+
327+
## 服务端上传(rsutil)
328+
329+
```{go}
330+
package "qiniu/api/rsutil"
331+
332+
import (
333+
"qiniu/api/rs"
334+
sio "qiniu/api/io"
335+
rio "qiniu/api/resumable/io"
336+
)
337+
338+
// simple upload
339+
340+
func Put(
341+
c rs.Client, bucket string,
342+
key string, body io.Reader, extra *sio.PutExtra) (ret sio.PutRet, err error)
343+
344+
func PutWithoutKey(
345+
c rs.Client, bucket string,
346+
body io.Reader, extra *sio.PutExtra) (ret sio.PutRet, err error)
347+
348+
func PutFile(
349+
c rs.Client, bucket string,
350+
key string, localFile string, extra *sio.PutExtra) (ret sio.PutRet, err error)
351+
352+
func PutFileWithoutKey(
353+
c rs.Client, bucket string,
354+
localFile string, extra *sio.PutExtra) (ret sio.PutRet, err error)
355+
356+
// resumable upload
357+
358+
func Rput(
359+
c rs.Client, bucket string,
360+
key string, f io.ReaderAt, fsize int64, extra *rio.PutExtra) (ret rio.PutRet, err error)
361+
362+
func RputWithoutKey(
363+
c rs.Client, bucket string,
364+
f io.ReaderAt, fsize int64, extra *rio.PutExtra) (ret rio.PutRet, err error)
365+
366+
func RputFile(
367+
c rs.Client, bucket string,
368+
key string, localFile string, extra *rio.PutExtra) (ret rio.PutRet, err error)
369+
370+
func RputFileWithoutKey(
371+
c rs.Client, bucket string,
372+
localFile string, extra *rio.PutExtra) (ret rio.PutRet, err error)
373+
```
374+
375+
范围:仅在服务端使用。本模块仅仅是 rs + io/rio 的简单包装。

0 commit comments

Comments
 (0)