cos 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8dd5186b7dc60c10661854d62c9ce39d4b13b52b
4
- data.tar.gz: 16ec04430868339b7ef0806167c2273a90b8ff31
3
+ metadata.gz: 3df8feb5feb55c8ddf5ae731af49b213922403df
4
+ data.tar.gz: a5dda119bacdf36fd039c83b5576680ae175cd5f
5
5
  SHA512:
6
- metadata.gz: c0e1a7704fe2b84be3a4b1901e1426bd0a8806ec4da8a95727496ac11cc3e234c4460d2e962e146f70e90c7841696d50d489d18085d16461a8e08b9ee9683b33
7
- data.tar.gz: c6ce091a53d60fdbf3408815b0df75c4f7bd4b2d4da95df40634a1a634fd2ef4b431e385ad16040386b977e2ed5f977386a81d9c53c93bece631f2e4ef12c909
6
+ metadata.gz: 4095898e274f51ba793ac739b7ec69cddae487c13ef430015bfa533d163afc07f6bb7ad75ae4fb9c06fdab01625c5100d85f3ee983543222fa7206fa0f14e5de
7
+ data.tar.gz: a4f5268e15a3a20b2dfabd0a52c3ddeb2a06b8519ac4666906df81cc3853a7b503fb0a1a76a3a2603a7ae97ab9598349ec39e3edb37d04e2aef03c4a7ab60f2b
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
- - jruby-19mode
4
+ # - jruby-19mode
5
5
  - 2.0
6
6
  - 2.1
7
7
  - 2.2
@@ -12,4 +12,4 @@ before_install: gem install bundler
12
12
 
13
13
  addons:
14
14
  code_climate:
15
- repo_token: 1f460aa92bd5cff641f3ab71dad000c3c102689d97e2b4df90cb90789161284a
15
+ repo_token: 21930d55f6bdf5716ba7138f38e30ea6726226b3219ae17372e254700f58fe09
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Tencent COS Ruby SDK
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/cos.svg)](https://badge.fury.io/rb/cos) [![Dependency Status](https://gemnasium.com/bfcd58e8c449a47dcf4bd15e35806dc8.svg)](https://gemnasium.com/RaymondChou/cos-ruby-sdk) [![Code Climate](https://codeclimate.com/repos/5690d89cb1a7430e970051c5/badges/e1ec353330a7f9bb90a1/gpa.svg)](https://codeclimate.com/repos/5690d89cb1a7430e970051c5/feed) [![Build Status](https://travis-ci.com/RaymondChou/cos-ruby-sdk.svg?token=J7GcZgoty9nseAGRShu5&branch=master)](https://travis-ci.com/RaymondChou/cos-ruby-sdk) [![Test Coverage](https://codeclimate.com/repos/5690d89cb1a7430e970051c5/badges/e1ec353330a7f9bb90a1/coverage.svg)](https://codeclimate.com/repos/5690d89cb1a7430e970051c5/coverage)
3
+ [![Gem Version](https://badge.fury.io/rb/cos.svg)](https://badge.fury.io/rb/cos) [![Dependency Status](https://gemnasium.com/RaymondChou/cos-ruby-sdk.svg)](https://gemnasium.com/RaymondChou/cos-ruby-sdk)
4
+ [![Code Climate](https://codeclimate.com/github/RaymondChou/cos-ruby-sdk/badges/gpa.svg)](https://codeclimate.com/github/RaymondChou/cos-ruby-sdk) [![Build Status](https://travis-ci.org/RaymondChou/cos-ruby-sdk.svg?branch=master)](https://travis-ci.org/RaymondChou/cos-ruby-sdk) [![Test Coverage](https://codeclimate.com/github/RaymondChou/cos-ruby-sdk/badges/coverage.svg)](https://codeclimate.com/github/RaymondChou/cos-ruby-sdk/coverage)
4
5
 
5
6
  [![Gitter](https://badges.gitter.im/RaymondChou/cos-ruby-sdk.svg)](https://gitter.im/RaymondChou/cos-ruby-sdk?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![Gem Downloads](http://ruby-gem-downloads-badge.herokuapp.com/cos?type=total)](https://rubygems.org/gems/cos) [![Github Code](http://img.shields.io/badge/github-code-blue.svg)](https://github.com/RaymondChou/cos-ruby-sdk) [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/RaymondChou/cos-ruby-sdk)
6
7
 
@@ -20,7 +21,7 @@ Tencent🐧 COS(Cloud Object Service) SDK for Ruby [腾讯云对象存储服务
20
21
 
21
22
  - 支持Rails
22
23
 
23
- - 提供便捷的CLI工具:
24
+ - 提供便捷的[CLI工具:](#6-cli%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7)
24
25
 
25
26
  ![CLI示例](http://mytest-10016219.file.myqcloud.com/out2.gif)
26
27
 
@@ -38,69 +39,69 @@ Tencent🐧 COS(Cloud Object Service) SDK for Ruby [腾讯云对象存储服务
38
39
  - [4 SDK详细说明](#4-sdk%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E)
39
40
  - [4.1 初始化与配置](#41-%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%8E%E9%85%8D%E7%BD%AE)
40
41
  - [4.2 指定Bucket](#42-%E6%8C%87%E5%AE%9Abucket)
41
- - [4.3 Bucket操作(COS::Bucket)](#43-bucket%E6%93%8D%E4%BD%9C%EF%BC%88cosbucket%EF%BC%89)
42
+ - [4.3 Bucket操作(COS::Bucket)](#43-bucket%E6%93%8D%E4%BD%9Ccosbucket)
42
43
  - [4.3.1 获取Bucket属性](#431-%E8%8E%B7%E5%8F%96bucket%E5%B1%9E%E6%80%A7)
43
- - [4.3.2 创建目录(create_folder,mkdir)](#432-%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95%EF%BC%88create_folder%EF%BC%8Cmkdir%EF%BC%89)
44
- - [4.3.3 列举目录(list,ls)](#433-%E5%88%97%E4%B8%BE%E7%9B%AE%E5%BD%95%EF%BC%88list%EF%BC%8Cls%EF%BC%89)
45
- - [4.3.4 上传文件(upload)](#434-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%EF%BC%88upload%EF%BC%89)
46
- - [4.3.4 资源属性(stat)](#434-%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%A7%EF%BC%88stat%EF%BC%89)
47
- - [4.3.5 更新资源属性(upadte)](#435-%E6%9B%B4%E6%96%B0%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%A7%EF%BC%88upadte%EF%BC%89)
48
- - [4.3.6 删除资源(delete)](#436-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%90%EF%BC%88delete%EF%BC%89)
49
- - [4.3.7 删除资源(无异常)(delete!)](#437-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%90%EF%BC%88%E6%97%A0%E5%BC%82%E5%B8%B8%EF%BC%89%EF%BC%88delete%EF%BC%89)
50
- - [4.3.8 判断目录是否为空(empty?)](#438-%E5%88%A4%E6%96%AD%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BA%EF%BC%88empty%EF%BC%89)
51
- - [4.3.9 判断资源是否存在(exist?,exists?)](#439-%E5%88%A4%E6%96%AD%E8%B5%84%E6%BA%90%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%EF%BC%88exist%EF%BC%8Cexists%EF%BC%89)
52
- - [4.3.9 判断文件是否上传完成(complete?)](#439-%E5%88%A4%E6%96%AD%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90%EF%BC%88complete%EF%BC%89)
53
- - [4.3.10 获取文件的访问URL(url)](#4310-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E8%AE%BF%E9%97%AEurl%EF%BC%88url%EF%BC%89)
54
- - [4.3.11 下载文件(download)](#4311-%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%EF%BC%88download%EF%BC%89)
55
- - [4.3.12 获取Object树形结构(tree)](#4312-%E8%8E%B7%E5%8F%96object%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%EF%BC%88tree%EF%BC%89)
56
- - [4.3.13 获取Hash树形结构(hash_tree)](#4313-%E8%8E%B7%E5%8F%96hash%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%EF%BC%88hash_tree%EF%BC%89)
57
- - [4.3.14 批量下载目录下的所有文件(download_all)](#4314-%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88download_all%EF%BC%89)
58
- - [4.3.15 批量上传目录中的所有文件(upload_all)](#4315-%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88upload_all%EF%BC%89)
59
- - [4.3.16 获取资源个数详情(支持前缀搜索)(list_count)](#4316-%E8%8E%B7%E5%8F%96%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%E8%AF%A6%E6%83%85%EF%BC%88%E6%94%AF%E6%8C%81%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2%EF%BC%89%EF%BC%88list_count%EF%BC%89)
60
- - [4.3.17 获取资源个数(count, size)](#4317-%E8%8E%B7%E5%8F%96%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%EF%BC%88count-size%EF%BC%89)
61
- - [4.3.18 获取文件个数(count_files)](#4318-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%AA%E6%95%B0%EF%BC%88count_files%EF%BC%89)
62
- - [4.3.19 获取目录个数(count_dirs)](#4319-%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%AA%E6%95%B0%EF%BC%88count_dirs%EF%BC%89)
44
+ - [4.3.2 创建目录(create_folder,mkdir)](#432-%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95create_folder)
45
+ - [4.3.3 列举目录(list,ls)](#433-%E5%88%97%E4%B8%BE%E7%9B%AE%E5%BD%95listls)
46
+ - [4.3.4 上传文件(upload)](#434-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6upload)
47
+ - [4.3.4 资源属性(stat)](#434-%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%A7stat)
48
+ - [4.3.5 更新资源属性(upadte)](#435-%E6%9B%B4%E6%96%B0%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%A7upadte)
49
+ - [4.3.6 删除资源(delete)](#436-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%90delete)
50
+ - [4.3.7 删除资源(无异常)(delete!)](#437-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%90%E6%97%A0%E5%BC%82%E5%B8%B8delete)
51
+ - [4.3.8 判断目录是否为空(empty?)](#438-%E5%88%A4%E6%96%AD%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BAempty)
52
+ - [4.3.9 判断资源是否存在(exist?,exists?)](#439-%E5%88%A4%E6%96%AD%E8%B5%84%E6%BA%90%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8existexists)
53
+ - [4.3.9 判断文件是否上传完成(complete?)](#439-%E5%88%A4%E6%96%AD%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90complete)
54
+ - [4.3.10 获取文件的访问URL(url)](#4310-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E8%AE%BF%E9%97%AEurlurl)
55
+ - [4.3.11 下载文件(download)](#4311-%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6download)
56
+ - [4.3.12 获取Object树形结构(tree)](#4312-%E8%8E%B7%E5%8F%96object%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84tree)
57
+ - [4.3.13 获取Hash树形结构(hash_tree)](#4313-%E8%8E%B7%E5%8F%96hash%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84hash_tree)
58
+ - [4.3.14 批量下载目录下的所有文件(download_all)](#4314-%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6download_all)
59
+ - [4.3.15 批量上传目录中的所有文件(upload_all)](#4315-%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6upload_all)
60
+ - [4.3.16 获取资源个数详情(支持前缀搜索)(list_count)](#4316-%E8%8E%B7%E5%8F%96%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%E8%AF%A6%E6%83%85%E6%94%AF%E6%8C%81%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2list_count)
61
+ - [4.3.17 获取资源个数(count, size)](#4317-%E8%8E%B7%E5%8F%96%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0count-size)
62
+ - [4.3.18 获取文件个数(count_files)](#4318-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%AA%E6%95%B0count_files)
63
+ - [4.3.19 获取目录个数(count_dirs)](#4319-%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%AA%E6%95%B0count_dirs)
63
64
  - [4.4 资源操作](#44-%E8%B5%84%E6%BA%90%E6%93%8D%E4%BD%9C)
64
- - [4.4.1 文件操作(COS::COSFile)](#441-%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%EF%BC%88coscosfile%EF%BC%89)
65
+ - [4.4.1 文件操作(COS::COSFile)](#441-%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9Ccoscosfile)
65
66
  - [4.4.1.1 获取文件属性](#4411-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E5%B1%9E%E6%80%A7)
66
- - [4.4.1.2 获取当前文件属性(刷新)(stat)](#4412-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%B1%9E%E6%80%A7%EF%BC%88%E5%88%B7%E6%96%B0%EF%BC%89%EF%BC%88stat%EF%BC%89)
67
- - [4.4.1.3 更新当前文件属性(upadte)](#4413-%E6%9B%B4%E6%96%B0%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%B1%9E%E6%80%A7%EF%BC%88upadte%EF%BC%89)
68
- - [4.4.1.4 删除当前文件(delete)](#4414-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%EF%BC%88delete%EF%BC%89)
69
- - [4.4.1.5 删除当前文件(无异常)(delete!)](#4415-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%EF%BC%88%E6%97%A0%E5%BC%82%E5%B8%B8%EF%BC%89%EF%BC%88delete%EF%BC%89)
70
- - [4.4.1.6 判断当前文件是否存在(exist?,exists?)](#4416-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%EF%BC%88exist%EF%BC%8Cexists%EF%BC%89)
71
- - [4.4.1.7 判断当前文件是否上传完成(complete?)](#4417-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90%EF%BC%88complete%EF%BC%89)
72
- - [4.4.1.8 获取当前文件的访问URL(url)](#4418-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E7%9A%84%E8%AE%BF%E9%97%AEurl%EF%BC%88url%EF%BC%89)
73
- - [4.4.1.9 下载当前文件(download)](#4419-%E4%B8%8B%E8%BD%BD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%EF%BC%88download%EF%BC%89)
67
+ - [4.4.1.2 获取当前文件属性(刷新)(stat)](#4412-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%B1%9E%E6%80%A7%E5%88%B7%E6%96%B0stat)
68
+ - [4.4.1.3 更新当前文件属性(upadte)](#4413-%E6%9B%B4%E6%96%B0%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E5%B1%9E%E6%80%A7upadte)
69
+ - [4.4.1.4 删除当前文件(delete)](#4414-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6delete)
70
+ - [4.4.1.5 删除当前文件(无异常)(delete!)](#4415-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E6%97%A0%E5%BC%82%E5%B8%B8delete)
71
+ - [4.4.1.6 判断当前文件是否存在(exist?,exists?)](#4416-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8existexists)
72
+ - [4.4.1.7 判断当前文件是否上传完成(complete?)](#4417-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90complete)
73
+ - [4.4.1.8 获取当前文件的访问URL(url)](#4418-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E7%9A%84%E8%AE%BF%E9%97%AEurlurl)
74
+ - [4.4.1.9 下载当前文件(download)](#4419-%E4%B8%8B%E8%BD%BD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6download)
74
75
  - [4.4.1.10 判断当前文件与本地文件是否相同](#44110-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%B6%E4%B8%8E%E6%9C%AC%E5%9C%B0%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E7%9B%B8%E5%90%8C)
75
- - [4.4.2 目录操作(COS::COSDir)](#442-%E7%9B%AE%E5%BD%95%E6%93%8D%E4%BD%9C%EF%BC%88coscosdir%EF%BC%89)
76
+ - [4.4.2 目录操作(COS::COSDir)](#442-%E7%9B%AE%E5%BD%95%E6%93%8D%E4%BD%9Ccoscosdir)
76
77
  - [4.4.2.1 获取目录属性](#4421-%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7)
77
- - [4.4.2.2 列举当前目录(前缀搜索)(list,ls)](#4422-%E5%88%97%E4%B8%BE%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%EF%BC%88%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2%EF%BC%89%EF%BC%88list%EF%BC%8Cls%EF%BC%89)
78
- - [4.4.2.3 创建子目录(create_folder,mkdir)](#4423-%E5%88%9B%E5%BB%BA%E5%AD%90%E7%9B%AE%E5%BD%95%EF%BC%88create_folder%EF%BC%8Cmkdir%EF%BC%89)
79
- - [4.4.2.4 上传文件至当前目录(upload)](#4424-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E8%87%B3%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%EF%BC%88upload%EF%BC%89)
80
- - [4.4.2.5 批量上传本地目录中的所有文件至当前目录(upload_all)](#4425-%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E6%9C%AC%E5%9C%B0%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E8%87%B3%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%EF%BC%88upload_all%EF%BC%89)
81
- - [4.4.2.6 批量下载当前目录下的所有文件(download_all)](#4426-%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88download_all%EF%BC%89)
82
- - [4.4.2.7 当前目录属性(刷新)(stat)](#4427-%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7%EF%BC%88%E5%88%B7%E6%96%B0%EF%BC%89%EF%BC%88stat%EF%BC%89)
83
- - [4.4.2.8 更新当前目录属性(upadte)](#4428-%E6%9B%B4%E6%96%B0%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7%EF%BC%88upadte%EF%BC%89)
84
- - [4.4.2.9 删除当前目录(delete)](#4429-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%EF%BC%88delete%EF%BC%89)
85
- - [4.4.2.10 删除当前目录(无异常)(delete!)](#44210-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%EF%BC%88%E6%97%A0%E5%BC%82%E5%B8%B8%EF%BC%89%EF%BC%88delete%EF%BC%89)
86
- - [4.4.2.11 判断当前目录是否为空(empty?)](#44211-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BA%EF%BC%88empty%EF%BC%89)
87
- - [4.4.2.12 判断当前目录是否存在(exist?,exists?)](#44212-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%EF%BC%88exist%EF%BC%8Cexists%EF%BC%89)
88
- - [4.4.2.13 获取当前目录下的Object树形结构(tree)](#44213-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84object%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%EF%BC%88tree%EF%BC%89)
89
- - [4.4.2.14 获取当前目录下的Hash树形结构(hash_tree)](#44214-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84hash%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84%EF%BC%88hash_tree%EF%BC%89)
90
- - [4.4.2.15 获取当前目录下的资源个数详情(支持前缀搜索)(list_count)](#44215-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%E8%AF%A6%E6%83%85%EF%BC%88%E6%94%AF%E6%8C%81%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2%EF%BC%89%EF%BC%88list_count%EF%BC%89)
91
- - [4.4.2.16 获取当前目录下的资源个数(count, size)](#44216-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%EF%BC%88count-size%EF%BC%89)
92
- - [4.4.2.17 获取当前目录下的文件个数(count_files)](#44217-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%AA%E6%95%B0%EF%BC%88count_files%EF%BC%89)
93
- - [4.4.2.18 获取当前目录下的子目录个数(count_dirs)](#44218-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AA%E6%95%B0%EF%BC%88count_dirs%EF%BC%89)
94
- - [4.5 签名操作(COS::Signature)](#45-%E7%AD%BE%E5%90%8D%E6%93%8D%E4%BD%9C%EF%BC%88cossignature%EF%BC%89)
95
- - [4.5.1 获取单次有效签名(once)](#451-%E8%8E%B7%E5%8F%96%E5%8D%95%E6%AC%A1%E6%9C%89%E6%95%88%E7%AD%BE%E5%90%8D%EF%BC%88once%EF%BC%89)
96
- - [4.5.2 获取多次有效签名(multiple)](#452-%E8%8E%B7%E5%8F%96%E5%A4%9A%E6%AC%A1%E6%9C%89%E6%95%88%E7%AD%BE%E5%90%8D%EF%BC%88multiple%EF%BC%89)
97
- - [5 底层API(COS::API)](#5-%E5%BA%95%E5%B1%82api%EF%BC%88cosapi%EF%BC%89)
78
+ - [4.4.2.2 列举当前目录(前缀搜索)(list,ls)](#4422-%E5%88%97%E4%B8%BE%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2listls)
79
+ - [4.4.2.3 创建子目录(create_folder,mkdir)](#4423-%E5%88%9B%E5%BB%BA%E5%AD%90%E7%9B%AE%E5%BD%95create_folder)
80
+ - [4.4.2.4 上传文件至当前目录(upload)](#4424-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E8%87%B3%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95upload)
81
+ - [4.4.2.5 批量上传本地目录中的所有文件至当前目录(upload_all)](#4425-%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E6%9C%AC%E5%9C%B0%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E8%87%B3%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95upload_all)
82
+ - [4.4.2.6 批量下载当前目录下的所有文件(download_all)](#4426-%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6download_all)
83
+ - [4.4.2.7 当前目录属性(刷新)(stat)](#4427-%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7%E5%88%B7%E6%96%B0stat)
84
+ - [4.4.2.8 更新当前目录属性(upadte)](#4428-%E6%9B%B4%E6%96%B0%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7upadte)
85
+ - [4.4.2.9 删除当前目录(delete)](#4429-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95delete)
86
+ - [4.4.2.10 删除当前目录(无异常)(delete!)](#44210-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%97%A0%E5%BC%82%E5%B8%B8delete)
87
+ - [4.4.2.11 判断当前目录是否为空(empty?)](#44211-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BAempty)
88
+ - [4.4.2.12 判断当前目录是否存在(exist?,exists?)](#44212-%E5%88%A4%E6%96%AD%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8existexists)
89
+ - [4.4.2.13 获取当前目录下的Object树形结构(tree)](#44213-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84object%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84tree)
90
+ - [4.4.2.14 获取当前目录下的Hash树形结构(hash_tree)](#44214-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84hash%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%84hash_tree)
91
+ - [4.4.2.15 获取当前目录下的资源个数详情(支持前缀搜索)(list_count)](#44215-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0%E8%AF%A6%E6%83%85%E6%94%AF%E6%8C%81%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2list_count)
92
+ - [4.4.2.16 获取当前目录下的资源个数(count, size)](#44216-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%B0count-size)
93
+ - [4.4.2.17 获取当前目录下的文件个数(count_files)](#44217-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E4%B8%AA%E6%95%B0count_files)
94
+ - [4.4.2.18 获取当前目录下的子目录个数(count_dirs)](#44218-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AA%E6%95%B0count_dirs)
95
+ - [4.5 签名操作(COS::Signature)](#45-%E7%AD%BE%E5%90%8D%E6%93%8D%E4%BD%9Ccossignature)
96
+ - [4.5.1 获取单次有效签名(once)](#451-%E8%8E%B7%E5%8F%96%E5%8D%95%E6%AC%A1%E6%9C%89%E6%95%88%E7%AD%BE%E5%90%8Donce)
97
+ - [4.5.2 获取多次有效签名(multiple)](#452-%E8%8E%B7%E5%8F%96%E5%A4%9A%E6%AC%A1%E6%9C%89%E6%95%88%E7%AD%BE%E5%90%8Dmultiple)
98
+ - [5 底层API(COS::API)](#5-%E5%BA%95%E5%B1%82apicosapi)
98
99
  - [5.1 创建目录(create_folder)](#51-%E5%88%9B%E5%BB%BA%E7%9B%AE%E5%BD%95create_folder)
99
- - [5.2 目录列表(前缀搜索)(list)](#52-%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8%EF%BC%88%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2%EF%BC%89list)
100
- - [5.3 上传文件(完整上传)(upload)](#53-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%EF%BC%88%E5%AE%8C%E6%95%B4%E4%B8%8A%E4%BC%A0%EF%BC%89upload)
101
- - [5.4 上传文件(分片上传)(upload_slice)](#54-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%EF%BC%88%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0%EF%BC%89upload_slice)
102
- - [5.5 更新文件、目录属性(update)](#55-%E6%9B%B4%E6%96%B0%E6%96%87%E4%BB%B6%E3%80%81%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7update)
103
- - [5.6 删除文件、目录(delete)](#56-%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E3%80%81%E7%9B%AE%E5%BD%95delete)
100
+ - [5.2 目录列表(前缀搜索)(list)](#52-%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8%E5%89%8D%E7%BC%80%E6%90%9C%E7%B4%A2list)
101
+ - [5.3 上传文件(完整上传)(upload)](#53-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E5%AE%8C%E6%95%B4%E4%B8%8A%E4%BC%A0upload)
102
+ - [5.4 上传文件(分片上传)(upload_slice)](#54-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0upload_slice)
103
+ - [5.5 更新文件、目录属性(update)](#55-%E6%9B%B4%E6%96%B0%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7update)
104
+ - [5.6 删除文件、目录(delete)](#56-%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95delete)
104
105
  - [5.7 获取文件或目录属性(stat)](#57-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E5%B1%9E%E6%80%A7stat)
105
106
  - [5.8下载文件](#58%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6)
106
107
  - [6 CLI命令行工具](#6-cli%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7)
@@ -152,7 +153,7 @@ client = COS::Client.new({
152
153
  })
153
154
  ```
154
155
 
155
- 更多初始化参数及加载方式请见:4.1 初始化与配置
156
+ 更多初始化参数及加载方式请见: [4.1 初始化与配置](#41-%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%8E%E9%85%8D%E7%BD%AE)
156
157
 
157
158
  ### 3.3 指定Bucket
158
159
 
@@ -282,7 +283,7 @@ file.delete
282
283
  # 使用协议,默认为http,可选https
283
284
  :protocol => 'https',
284
285
  # 接口通讯建立连接超时秒数
285
- :open_timeout => 15,
286
+ :open_timeout => 30,
286
287
  # 接口通讯读取数据超时秒数
287
288
  :read_timeout => 120,
288
289
  # 加载配置文件路径
@@ -440,21 +441,21 @@ end
440
441
 
441
442
  参数:
442
443
 
443
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
444
- | :--------------------------- | :-----: | :---------: | :--------------: | --------------------------------------- |
445
- | path_or_dir | String\ | COS::COSDir | | |
446
- | file_name | String | | 无 | 存储文件名 |
447
- | file_src | String | | 无 | 本地文件路径 |
448
- | options | Hash | | 无 | |
449
- | options[:auto_create_folder] | Boolean | | false | 自动创建远端目录 |
450
- | options[:min_slice_size] | Integer | | 10 * 1024 * 1024 | 完整上传最小文件大小,超过此大小将会使用分片多线程断点续传 |
451
- | options[:upload_retry] | Integer | | 10 | 上传重试次数 |
452
- | options[:biz_attr] | String | | 无 | 业务属性 |
453
- | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如禁用仍可通过服务端进行断点续传 |
454
- | options[:threads] | Integer | | 10 | 多线程上传线程数 |
455
- | options[:slice_size] | Integer | | 3 * 1024 * 1024 | 设置分片上传时每个分片的大小。默认为3 MB, 目前服务端最大限制也为3MB。 |
456
- | options[:cpt_file] | String | | 无 | 断点续传的checkpoint文件 |
457
- | yield | Float | | 无 | 上传进度百分比回调, 进度值是一个0-1之间的小数 |
444
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
445
+ | :--------------------------- | :----------------: | :--: | :--------------: | ---------------------------------------- |
446
+ | path_or_dir | String/COS::COSDir | 否 | | 目录路径或目录对象COSDir目录路径如: '/', 'path1', 'path1/path2', sdk会补齐末尾的 '/' |
447
+ | file_name | String | | 无 | 存储文件名 |
448
+ | file_src | String | | 无 | 本地文件路径 |
449
+ | options | Hash | | 无 | |
450
+ | options[:auto_create_folder] | Boolean | | false | 自动创建远端目录 |
451
+ | options[:min_slice_size] | Integer | | 10 * 1024 * 1024 | 完整上传最小文件大小,超过此大小将会使用分片多线程断点续传 |
452
+ | options[:upload_retry] | Integer | | 10 | 上传重试次数 |
453
+ | options[:biz_attr] | String | | 无 | 业务属性 |
454
+ | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如禁用仍可通过服务端进行断点续传 |
455
+ | options[:threads] | Integer | | 10 | 多线程上传线程数 |
456
+ | options[:slice_size] | Integer | | 3 * 1024 * 1024 | 设置分片上传时每个分片的大小。默认为3 MB, 目前服务端最大限制也为3MB。 |
457
+ | options[:cpt_file] | String | | 无 | 断点续传的checkpoint文件 |
458
+ | yield | Float | | 无 | 上传进度百分比回调, 进度值是一个0-1之间的小数 |
458
459
 
459
460
  注:SDK会自动使用分片断点续传上传大文件。
460
461
 
@@ -658,13 +659,13 @@ puts @bucket.complete?('path/file1')
658
659
 
659
660
  参数:
660
661
 
661
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
662
- | :----------------------- | :-----: | :----------: | :---: | ------------------------------- |
663
- | path_or_file | String\ | COS::COSFile | 否 | |
664
- | options | Hash | | | |
665
- | options[:cname] | String | | 无 | 获取使用cname的url。在cos控制台设置的cname域名 |
666
- | options[:https] | Boolean | | false | 是否获取https的url |
667
- | options[:expire_seconds] | Integer | | 600 | 签名有效时间(秒,私有读取bucket时需要) |
662
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
663
+ | :----------------------- | :-----------------: | :--: | :---: | ------------------------------- |
664
+ | path_or_file | String/COS::COSFile | 否 | | 文件资源COSFile或路径, 如: 'path1/file' |
665
+ | options | Hash | | | |
666
+ | options[:cname] | String | | 无 | 获取使用cname的url。在cos控制台设置的cname域名 |
667
+ | options[:https] | Boolean | | false | 是否获取https的url |
668
+ | options[:expire_seconds] | Integer | | 600 | 签名有效时间(秒,私有读取bucket时需要) |
668
669
 
669
670
  返回:
670
671
 
@@ -686,16 +687,17 @@ puts bucket.url('path1/file1', https: true, cname: 'static.domain.com')
686
687
 
687
688
  参数:
688
689
 
689
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
690
- | :----------------------- | :-----: | :----------: | :-----------: | ----------------------------- |
691
- | path_or_file | String\ | COS::COSFile | 是 | |
692
- | file_store | String | | 无 | 本地文件存储路径 |
693
- | options | Hash | | 无 | |
694
- | options[:disable_mkdir] | Boolean | | true | 禁止自动创建本地文件夹, 默认会创建 |
695
- | options[:min_slice_size] | Integer | | 5 * 10 * 1024 | 完整下载最小文件大小,超过此大小将会使用分片多线程断点续传 |
696
- | options[:download_retry] | Integer | | 10 | 下载重试次数 |
697
- | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如果禁用则不使用断点续传 |
698
- | yield | Float | || 下载进度百分比回调, 进度值是一个0-1之间的小数 |
690
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
691
+ | :----------------------- | :-----------------: | :--: | :-----------: | ------------------------------- |
692
+ | path_or_file | String/COS::COSFile | | | 文件资源COSFile或路径, 如: 'path1/file' |
693
+ | file_store | String | | 无 | 本地文件存储路径 |
694
+ | options | Hash | | 无 | |
695
+ | options[:disable_mkdir] | Boolean | | true | 禁止自动创建本地文件夹, 默认会创建 |
696
+ | options[:min_slice_size] | Integer | | 5 * 10 * 1024 | 完整下载最小文件大小,超过此大小将会使用分片多线程断点续传 |
697
+ | options[:part_size] | Integer | | 5 * 10 * 1024 | 分片下载大小,如多线程下载时使用该大小分片下载 |
698
+ | options[:download_retry] | Integer | 否 | 10 | 下载重试次数 |
699
+ | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如果禁用则不使用断点续传 |
700
+ | yield | Float | 否 | 无 | 下载进度百分比回调, 进度值是一个0-1之间的小数 |
699
701
 
700
702
  注:支持私有访问资源下载,SDK会自动携带鉴权签名。SDK会自动使用分片断点续传下载大文件。
701
703
 
@@ -724,11 +726,12 @@ puts file
724
726
 
725
727
  参数:
726
728
 
727
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
728
- | :-------------- | :-----: | :---------: | :--: | ---------- |
729
- | path_or_dir | String\ | COS::COSDir | 否 | |
730
- | options | Hash | | | |
731
- | options[:depth] | Integer | | 5 | 子目录深度,默认为5 |
729
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
730
+ | :-------------- | :----------------: | :--: | :--: | ---------------------------------------- |
731
+ | path_or_dir | String/COS::COSDir | 否 | | 目录路径或目录对象COSDir目录路径如: '/', 'path1', 'path1/path2', sdk会补齐末尾的 '/' |
732
+ | options | Hash | | | |
733
+ | options[:depth] | Integer | | 5 | 子目录深度,默认为5 |
734
+ | options[:files] | Boolean | 否 | false | 同时列出文件,默认不列出 |
732
735
 
733
736
  返回:
734
737
 
@@ -761,11 +764,12 @@ end
761
764
 
762
765
  参数:
763
766
 
764
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
765
- | :-------------- | :-----: | :---------: | :--: | ---------- |
766
- | path_or_dir | String\ | COS::COSDir | 否 | |
767
- | options | Hash | | | |
768
- | options[:depth] | Integer | | 5 | 子目录深度,默认为5 |
767
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
768
+ | :-------------- | :----------------: | :--: | :--: | ---------------------------------------- |
769
+ | path_or_dir | String/COS::COSDir | 否 | | 目录路径或目录对象COSDir目录路径如: '/', 'path1', 'path1/path2', sdk会补齐末尾的 '/' |
770
+ | options | Hash | | | |
771
+ | options[:depth] | Integer | | 5 | 子目录深度,默认为5 |
772
+ | options[:files] | Boolean | 否 | false | 同时列出文件,默认不列出 |
769
773
 
770
774
  返回:
771
775
 
@@ -799,16 +803,16 @@ puts tree.to_json # 可直接转为json
799
803
 
800
804
  参数:
801
805
 
802
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
803
- | :----------------------- | :-----: | :---------: | :-----------: | ----------------------------- |
804
- | path_or_dir | String\ | COS::COSDir | | |
805
- | file_store_path | String | | 无 | 本地文件存储目录 |
806
- | options | Hash | | 无 | |
807
- | options[:disable_mkdir] | Boolean | | true | 禁止自动创建本地文件夹, 默认会创建 |
808
- | options[:min_slice_size] | Integer | | 5 * 10 * 1024 | 完整下载最小文件大小,超过此大小将会使用分片多线程断点续传 |
809
- | options[:download_retry] | Integer | | 10 | 下载重试次数 |
810
- | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如果禁用则不使用断点续传 |
811
- | yield | Float | | 无 | 下载进度百分比回调, 进度值是一个0-1之间的小数 |
806
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
807
+ | :----------------------- | :----------------: | :--: | :-----------: | ---------------------------------------- |
808
+ | path_or_dir | String/COS::COSDir | 否 | | 目录路径或目录对象COSDir目录路径如: '/', 'path1', 'path1/path2', sdk会补齐末尾的 '/' |
809
+ | file_store_path | String | | 无 | 本地文件存储目录 |
810
+ | options | Hash | | 无 | |
811
+ | options[:disable_mkdir] | Boolean | | true | 禁止自动创建本地文件夹, 默认会创建 |
812
+ | options[:min_slice_size] | Integer | | 5 * 10 * 1024 | 完整下载最小文件大小,超过此大小将会使用分片多线程断点续传 |
813
+ | options[:download_retry] | Integer | | 10 | 下载重试次数 |
814
+ | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如果禁用则不使用断点续传 |
815
+ | yield | Float | | 无 | 下载进度百分比回调, 进度值是一个0-1之间的小数 |
812
816
 
813
817
  注:不包含子目录。支持私有访问资源下载,SDK会自动携带鉴权签名。SDK会自动使用分片断点续传下载大文件。
814
818
 
@@ -835,21 +839,21 @@ puts files
835
839
 
836
840
  参数:
837
841
 
838
- | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
839
- | :--------------------------- | :-----: | :---------: | :--------------: | --------------------------------------- |
840
- | path_or_dir | String\ | COS::COSDir | | |
841
- | file_src_path | String | | 无 | 本地文件夹路径 |
842
- | options | Hash | | 无 | |
843
- | options[:skip_error] | Boolean | | false | 是否跳过错误仍继续上传下一个文件 |
844
- | options[:auto_create_folder] | Boolean | | false | 自动创建远端目录 |
845
- | options[:min_slice_size] | Integer | | 10 * 1024 * 1024 | 完整上传最小文件大小,超过此大小将会使用分片多线程断点续传 |
846
- | options[:upload_retry] | Integer | | 10 | 上传重试次数 |
847
- | options[:biz_attr] | String | | 无 | 业务属性 |
848
- | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如禁用仍可通过服务端进行断点续传 |
849
- | options[:threads] | Integer | | 10 | 多线程上传线程数 |
850
- | options[:slice_size] | Integer | | 3 * 1024 * 1024 | 设置分片上传时每个分片的大小。默认为3 MB, 目前服务端最大限制也为3MB。 |
851
- | options[:cpt_file] | String | | 无 | 断点续传的checkpoint文件 |
852
- | yield | Float | | 无 | 上传进度百分比回调, 进度值是一个0-1之间的小数 |
842
+ | 参数名 | 类型 | 必须 | 默认值 | 参数描述 |
843
+ | :--------------------------- | :----------------: | :--: | :--------------: | ---------------------------------------- |
844
+ | path_or_dir | String/COS::COSDir | 否 | | 目录路径或目录对象COSDir目录路径如: '/', 'path1', 'path1/path2', sdk会补齐末尾的 '/' |
845
+ | file_src_path | String | | 无 | 本地文件夹路径 |
846
+ | options | Hash | | 无 | |
847
+ | options[:skip_error] | Boolean | | false | 是否跳过错误仍继续上传下一个文件 |
848
+ | options[:auto_create_folder] | Boolean | | false | 自动创建远端目录 |
849
+ | options[:min_slice_size] | Integer | | 10 * 1024 * 1024 | 完整上传最小文件大小,超过此大小将会使用分片多线程断点续传 |
850
+ | options[:upload_retry] | Integer | | 10 | 上传重试次数 |
851
+ | options[:biz_attr] | String | | 无 | 业务属性 |
852
+ | options[:disable_cpt] | Boolean | | false | 是否禁用checkpoint,如禁用仍可通过服务端进行断点续传 |
853
+ | options[:threads] | Integer | | 10 | 多线程上传线程数 |
854
+ | options[:slice_size] | Integer | | 3 * 1024 * 1024 | 设置分片上传时每个分片的大小。默认为3 MB, 目前服务端最大限制也为3MB。 |
855
+ | options[:cpt_file] | String | | 无 | 断点续传的checkpoint文件 |
856
+ | yield | Float | | 无 | 上传进度百分比回调, 进度值是一个0-1之间的小数 |
853
857
 
854
858
  注:不包含子目录。SDK会自动使用分片断点续传上传大文件。
855
859
 
@@ -2022,6 +2026,7 @@ $ cos upload path/path2 file1 ~/file1
2022
2026
 
2023
2027
  ## 7 运行测试
2024
2028
 
2029
+ ### 7.1 单元测试
2025
2030
  ```
2026
2031
  rspec
2027
2032
  ```
@@ -2030,4 +2035,14 @@ rspec
2030
2035
 
2031
2036
  ```
2032
2037
  bundle exec rake spec
2038
+ ```
2039
+
2040
+ ### 7.2 集成测试
2041
+ 先安装memory_profiler
2042
+ ```
2043
+ gem install memory_profiler
2044
+ ```
2045
+
2046
+ ```
2047
+ bundle exec rake test
2033
2048
  ```
data/bin/cos CHANGED
@@ -115,12 +115,12 @@ class COS_CLI < Thor
115
115
  method_option :disable_cpt, aliases: '-d', desc: '禁用断点续传(分片下载时有效)', type: :boolean, default: false
116
116
  method_option :threads, aliases: '-t', desc: '线程数(分片下载时有效)', type: :numeric
117
117
  method_option :download_retry, aliases: '-n', desc: '重试次数(分片下载时有效)', type: :numeric
118
- method_option :slice_size, aliases: '-s', desc: '分片下载时每个分片的大小(分片下载时有效)', type: :numeric
118
+ method_option :part_size, aliases: '-s', desc: '分片下载时每个分片的大小(分片下载时有效)', type: :numeric
119
119
  method_option :cpt_file, aliases: '-e', desc: '指定断点续传记录(分片下载时有效)'
120
120
  def download(path, file_store)
121
121
  rescue_errors do
122
122
  file = bucket.download(path, file_store,
123
- enabled_options([:min_slice_size, :disable_cpt, :threads, :download_retry, :slice_size, :cpt_file])) do |percent|
123
+ enabled_options([:min_slice_size, :disable_cpt, :threads, :download_retry, :part_size, :cpt_file])) do |percent|
124
124
  puts("下载进度: #{(percent*100).round(2)}%", :green)
125
125
  end
126
126
  puts(file, :blue)
@@ -134,12 +134,12 @@ class COS_CLI < Thor
134
134
  method_option :disable_cpt, aliases: '-d', desc: '禁用断点续传(分片下载时有效)', type: :boolean, default: false
135
135
  method_option :threads, aliases: '-t', desc: '线程数(分片下载时有效)', type: :numeric
136
136
  method_option :download_retry, aliases: '-n', desc: '重试次数(分片下载时有效)', type: :numeric
137
- method_option :slice_size, aliases: '-s', desc: '分片下载时每个分片的大小(分片下载时有效)', type: :numeric
137
+ method_option :part_size, aliases: '-s', desc: '分片下载时每个分片的大小(分片下载时有效)', type: :numeric
138
138
  method_option :cpt_file, aliases: '-e', desc: '指定断点续传记录(分片下载时有效)'
139
139
  def download_all(path, file_store_path)
140
140
  rescue_errors do
141
141
  files = bucket.download_all(path, file_store_path,
142
- enabled_options([:min_slice_size, :disable_mkdir, :disable_cpt, :threads, :download_retry, :slice_size, :cpt_file])) do |percent|
142
+ enabled_options([:min_slice_size, :disable_mkdir, :disable_cpt, :threads, :download_retry, :part_size, :cpt_file])) do |percent|
143
143
  puts("下载进度: #{(percent*100).round(2)}%", :green)
144
144
  end
145
145
 
@@ -213,6 +213,10 @@ module COS
213
213
  min_size = options[:min_slice_size] || MIN_UPLOAD_SLICE_SIZE
214
214
  retry_times = options[:upload_retry] || DEFAULT_UPLOAD_RETRY
215
215
 
216
+ if min_size > 20 * 1024 * 1024
217
+ raise EntireUploadTooLarge, 'entire upload file too large, file size must < 20MB'
218
+ end
219
+
216
220
  options.merge!({bucket: bucket_name})
217
221
  file_src = File.expand_path(file_src)
218
222
  file_size = File.size(file_src)
@@ -272,7 +276,7 @@ module COS
272
276
  # puts file.url
273
277
  # end
274
278
  def upload_all(path_or_dir, file_src_path, options = {}, &block)
275
- local_path = Util.get_local_path(file_src_path, false)
279
+ local_path = Util.get_local_path(file_src_path, true)
276
280
  uploaded = []
277
281
 
278
282
  Dir.foreach(local_path) do |file|
@@ -22,7 +22,8 @@ module COS
22
22
  def initialize(opts = {})
23
23
  super(opts)
24
24
 
25
- @cpt_file = options[:cpt_file] || "#{File.expand_path(file_store)}.cpt"
25
+ @file_store = File.expand_path(file_store)
26
+ @cpt_file = options[:cpt_file] || "#{@file_store}.cpt"
26
27
  end
27
28
 
28
29
  # 开始下载
@@ -59,4 +59,7 @@ module COS
59
59
  # 本地目录不存在
60
60
  class LocalPathNotExist < Exception; end
61
61
 
62
+ # 完整上传文件过大
63
+ class EntireUploadTooLarge < Exception; end
64
+
62
65
  end
@@ -20,7 +20,8 @@ module COS
20
20
  # @option attrs [String] :filesize 文件存储大小
21
21
  # @option attrs [String] :filelen 文件大小
22
22
  # @option attrs [String] :sha 文件sha1值
23
- # @option attrs [String] :access_url 文件访问地址
23
+ # @option attrs [String] :access_url 文件CDN访问地址
24
+ # @option attrs [String] :source_url 文件外网访问地址
24
25
  #
25
26
  # @raise [AttrError] 缺少参数
26
27
  #
@@ -11,7 +11,7 @@ module COS
11
11
  DEFAULT_CONTENT_TYPE = 'application/json'
12
12
 
13
13
  # 请求创建超时
14
- OPEN_TIMEOUT = 15
14
+ OPEN_TIMEOUT = 30
15
15
 
16
16
  # 响应读取超时
17
17
  READ_TIMEOUT = 120
@@ -79,6 +79,7 @@ module COS
79
79
 
80
80
  required_attrs :bucket, :path, :name, :ctime, :mtime
81
81
  optional_attrs :biz_attr, :filesize, :filelen, :sha, :access_url,
82
+ :source_url,
82
83
  # 根目录(bucket)参数
83
84
  :authority, :bucket_type, :migrate_source_domain,
84
85
  :need_preview, :refers, :blackrefers, :brower_exec,
@@ -38,27 +38,35 @@ module COS
38
38
  # 未完成的片段
39
39
  @todo_parts = @parts.reject { |p| p[:done] }
40
40
 
41
- begin
42
- # 多线程上传
43
- (1..@num_threads).map do
44
- Thread.new do
45
- loop do
46
- # 获取下一个未上传的片段
47
- p = sync_get_todo_part
48
- break unless p
49
-
50
- # 上传片段
51
- upload_part(p)
52
- end
41
+ # 多线程上传
42
+ Thread.abort_on_exception = true
43
+
44
+ threads = []
45
+ @num_threads.times do
46
+ threads << Thread.new do
47
+ loop do
48
+ # 获取下一个未上传的片段
49
+ p = sync_get_todo_part
50
+ break unless p
51
+
52
+ # 上传片段
53
+ upload_part(p)
53
54
  end
54
- end.map(&:join)
55
- rescue => error
56
- unless finish?
57
- # 部分服务端异常需要重新初始化, 可能上传已经完成了
58
- if error.is_a?(ServerError) and error.error_code == -288
59
- File.delete(cpt_file) unless options[:disable_cpt]
55
+ end
56
+ end
57
+
58
+ threads.each do |thread|
59
+ begin
60
+ thread.join
61
+ rescue => error
62
+ unless finish?
63
+ # 部分服务端异常需要重新初始化, 可能上传已经完成了
64
+ if error.is_a?(ServerError) and error.error_code == -288
65
+ File.delete(cpt_file) unless options[:disable_cpt]
66
+ end
67
+ threads.each {|t| t.exit}
68
+ raise error
60
69
  end
61
- raise error
62
70
  end
63
71
  end
64
72
 
@@ -1,3 +1,3 @@
1
1
  module COS
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - RaymondChou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-18 00:00:00.000000000 Z
11
+ date: 2016-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.19'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.19'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.10'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.10'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: webmock
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.22'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.22'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.10'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.10'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: minitest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: '5.8'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
124
  version: '5.8'
125
125
  description: Tencent Cloud Object Service Ruby SDK.
@@ -130,9 +130,9 @@ executables:
130
130
  extensions: []
131
131
  extra_rdoc_files: []
132
132
  files:
133
- - ".gitignore"
134
- - ".rspec"
135
- - ".travis.yml"
133
+ - .gitignore
134
+ - .rspec
135
+ - .travis.yml
136
136
  - Gemfile
137
137
  - LICENSE
138
138
  - README.md
@@ -182,17 +182,17 @@ require_paths:
182
182
  - lib
183
183
  required_ruby_version: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">="
185
+ - - '>='
186
186
  - !ruby/object:Gem::Version
187
187
  version: 1.9.3
188
188
  required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - ">="
190
+ - - '>='
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  requirements: []
194
194
  rubyforge_project:
195
- rubygems_version: 2.4.5.1
195
+ rubygems_version: 2.0.14
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: Tencent COS Ruby SDK.