cos 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.