Skip to content

Commit

Permalink
Merge pull request #36 from aliyun/filter-filename
Browse files Browse the repository at this point in the history
Add pattern match to filter files for cp, set-meta
  • Loading branch information
yami committed Nov 8, 2017
2 parents f745e73 + eedfc1b commit 86f23e2
Show file tree
Hide file tree
Showing 16 changed files with 4,308 additions and 66 deletions.
2 changes: 1 addition & 1 deletion README-CN.md
Expand Up @@ -15,7 +15,7 @@
- 当前版本未提供Bucket管理功能功能,相关功能会在后续版本中开发。

## 版本
- 当前版本:1.3.0
- 当前版本:1.4.0

## 运行环境
- Linux
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -15,11 +15,11 @@
- The current version does not support bucket management. The feature will be available in future versions.

## Version
- Current version: 1.3.0.
- Current version: 1.4.0.

## Run environment
- Linux
- Lindows
- Windows
- Mac

## Dependent libraries
Expand Down
14 changes: 10 additions & 4 deletions lib/command.go
Expand Up @@ -393,7 +393,7 @@ func (cmd *Command) ossGetObjectMetaRetry(bucket *oss.Bucket, object string) (ht
}
}

func (cmd *Command) objectStatistic(bucket *oss.Bucket, cloudURL CloudURL, monitor Monitorer) {
func (cmd *Command) objectStatistic(bucket *oss.Bucket, cloudURL CloudURL, monitor Monitorer, filters []filterOptionType) {
if monitor == nil {
return
}
Expand All @@ -407,7 +407,11 @@ func (cmd *Command) objectStatistic(bucket *oss.Bucket, cloudURL CloudURL, monit
return
}

monitor.updateScanNum(int64(len(lor.Objects)))
for _, object := range lor.Objects {
if doesSingleObjectMatchPatterns(object.Key, filters) {
monitor.updateScanNum(1)
}
}

marker = oss.Marker(lor.NextMarker)
if !lor.IsTruncated {
Expand All @@ -418,7 +422,7 @@ func (cmd *Command) objectStatistic(bucket *oss.Bucket, cloudURL CloudURL, monit
monitor.setScanEnd()
}

func (cmd *Command) objectProducer(bucket *oss.Bucket, cloudURL CloudURL, chObjects chan<- string, chError chan<- error) {
func (cmd *Command) objectProducer(bucket *oss.Bucket, cloudURL CloudURL, chObjects chan<- string, chError chan<- error, filters []filterOptionType) {
pre := oss.Prefix(cloudURL.object)
marker := oss.Marker("")
for {
Expand All @@ -429,7 +433,9 @@ func (cmd *Command) objectProducer(bucket *oss.Bucket, cloudURL CloudURL, chObje
}

for _, object := range lor.Objects {
chObjects <- object.Key
if doesSingleObjectMatchPatterns(object.Key, filters) {
chObjects <- object.Key
}
}

pre = oss.Prefix(lor.Prefix)
Expand Down

0 comments on commit 86f23e2

Please sign in to comment.