-
Notifications
You must be signed in to change notification settings - Fork 1
/
cp_mv_rename.go
47 lines (37 loc) · 972 Bytes
/
cp_mv_rename.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package baidupcs
import (
"fmt"
"github.com/json-iterator/go"
)
// Rename 重命名文件/目录
func (pcs *BaiduPCS) Rename(from, to string) (err error) {
return pcs.cpmvOp(OperationRename, &CpMvJSON{
From: from,
To: to,
})
}
// Copy 批量拷贝文件/目录
func (pcs *BaiduPCS) Copy(cpmvJSON ...*CpMvJSON) (err error) {
return pcs.cpmvOp(OperationCopy, cpmvJSON...)
}
// Move 批量移动文件/目录
func (pcs *BaiduPCS) Move(cpmvJSON ...*CpMvJSON) (err error) {
return pcs.cpmvOp(OperationMove, cpmvJSON...)
}
func (pcs *BaiduPCS) cpmvOp(op string, cpmvJSON ...*CpMvJSON) (err error) {
dataReadCloser, err := pcs.prepareCpMvOp(op, cpmvJSON...)
if err != nil {
return
}
defer dataReadCloser.Close()
errInfo := NewErrorInfo(op)
d := jsoniter.NewDecoder(dataReadCloser)
err = d.Decode(errInfo)
if err != nil {
return fmt.Errorf("%s, %s, %s", op, StrJSONParseError, err)
}
if errInfo.ErrCode != 0 {
return errInfo
}
return nil
}