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 +4 -4
- data/.travis.yml +2 -2
- data/README.md +143 -128
- data/bin/cos +4 -4
- data/lib/cos/bucket.rb +5 -1
- data/lib/cos/download.rb +2 -1
- data/lib/cos/exception.rb +3 -0
- data/lib/cos/file.rb +2 -1
- data/lib/cos/http.rb +1 -1
- data/lib/cos/resource.rb +1 -0
- data/lib/cos/slice.rb +27 -19
- data/lib/cos/version.rb +1 -1
- metadata +24 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3df8feb5feb55c8ddf5ae731af49b213922403df
|
4
|
+
data.tar.gz: a5dda119bacdf36fd039c83b5576680ae175cd5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4095898e274f51ba793ac739b7ec69cddae487c13ef430015bfa533d163afc07f6bb7ad75ae4fb9c06fdab01625c5100d85f3ee983543222fa7206fa0f14e5de
|
7
|
+
data.tar.gz: a4f5268e15a3a20b2dfabd0a52c3ddeb2a06b8519ac4666906df81cc3853a7b503fb0a1a76a3a2603a7ae97ab9598349ec39e3edb37d04e2aef03c4a7ab60f2b
|
data/.travis.yml
CHANGED
@@ -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:
|
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/
|
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%
|
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%
|
44
|
-
- [4.3.3 列举目录(list,ls)](#433-%E5%88%97%E4%B8%BE%E7%9B%AE%E5%BD%
|
45
|
-
- [4.3.4 上传文件(upload)](#434-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%
|
46
|
-
- [4.3.4 资源属性(stat)](#434-%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%
|
47
|
-
- [4.3.5 更新资源属性(upadte)](#435-%E6%9B%B4%E6%96%B0%E8%B5%84%E6%BA%90%E5%B1%9E%E6%80%
|
48
|
-
- [4.3.6 删除资源(delete)](#436-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%
|
49
|
-
- [4.3.7 删除资源(无异常)(delete!)](#437-%E5%88%A0%E9%99%A4%E8%B5%84%E6%BA%90%
|
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%
|
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%
|
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%
|
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%
|
54
|
-
- [4.3.11 下载文件(download)](#4311-%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%
|
55
|
-
- [4.3.12 获取Object树形结构(tree)](#4312-%E8%8E%B7%E5%8F%96object%E6%A0%91%E5%BD%A2%E7%BB%93%E6%9E%
|
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%
|
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%
|
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%
|
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%
|
60
|
-
- [4.3.17 获取资源个数(count, size)](#4317-%E8%8E%B7%E5%8F%96%E8%B5%84%E6%BA%90%E4%B8%AA%E6%95%
|
61
|
-
- [4.3.18 获取文件个数(count_files)](#4318-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%AA%E6%95%
|
62
|
-
- [4.3.19 获取目录个数(count_dirs)](#4319-%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%AA%E6%95%
|
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%
|
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%
|
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%
|
68
|
-
- [4.4.1.4 删除当前文件(delete)](#4414-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%
|
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%
|
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%
|
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%
|
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%
|
73
|
-
- [4.4.1.9 下载当前文件(download)](#4419-%E4%B8%8B%E8%BD%BD%E5%BD%93%E5%89%8D%E6%96%87%E4%BB%
|
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%
|
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%
|
78
|
-
- [4.4.2.3 创建子目录(create_folder,mkdir)](#4423-%E5%88%9B%E5%BB%BA%E5%AD%90%E7%9B%AE%E5%BD%
|
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%
|
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%
|
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%
|
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%
|
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%
|
84
|
-
- [4.4.2.9 删除当前目录(delete)](#4429-%E5%88%A0%E9%99%A4%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%
|
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%
|
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%
|
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%
|
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%
|
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%
|
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%
|
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%
|
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%
|
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%
|
94
|
-
- [4.5 签名操作(COS::Signature)](#45-%E7%AD%BE%E5%90%8D%E6%93%8D%E4%BD%
|
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%
|
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%
|
97
|
-
- [5 底层API(COS::API)](#5-%E5%BA%95%E5%B1%
|
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%
|
100
|
-
- [5.3 上传文件(完整上传)(upload)](#53-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%
|
101
|
-
- [5.4 上传文件(分片上传)(upload_slice)](#54-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%
|
102
|
-
- [5.5 更新文件、目录属性(update)](#55-%E6%9B%B4%E6%96%B0%E6%96%87%E4%BB%B6%
|
103
|
-
- [5.6 删除文件、目录(delete)](#56-%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%
|
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 =>
|
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
|
446
|
-
| file_name |
|
447
|
-
| file_src |
|
448
|
-
| options |
|
449
|
-
| options[:auto_create_folder] |
|
450
|
-
| options[:min_slice_size] |
|
451
|
-
| options[:upload_retry] |
|
452
|
-
| options[:biz_attr] |
|
453
|
-
| options[:disable_cpt] |
|
454
|
-
| options[:threads] |
|
455
|
-
| options[:slice_size] |
|
456
|
-
| options[:cpt_file] |
|
457
|
-
| yield |
|
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
|
664
|
-
| options |
|
665
|
-
| options[:cname] |
|
666
|
-
| options[:https] |
|
667
|
-
| options[:expire_seconds] |
|
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
|
692
|
-
| file_store |
|
693
|
-
| options |
|
694
|
-
| options[:disable_mkdir] |
|
695
|
-
| options[:min_slice_size] |
|
696
|
-
| options[:
|
697
|
-
| options[:
|
698
|
-
|
|
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
|
730
|
-
| options |
|
731
|
-
| options[:depth] |
|
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
|
767
|
-
| options |
|
768
|
-
| options[:depth] |
|
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
|
805
|
-
| file_store_path |
|
806
|
-
| options |
|
807
|
-
| options[:disable_mkdir] |
|
808
|
-
| options[:min_slice_size] |
|
809
|
-
| options[:download_retry] |
|
810
|
-
| options[:disable_cpt] |
|
811
|
-
| yield |
|
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
|
841
|
-
| file_src_path |
|
842
|
-
| options |
|
843
|
-
| options[:skip_error] |
|
844
|
-
| options[:auto_create_folder] |
|
845
|
-
| options[:min_slice_size] |
|
846
|
-
| options[:upload_retry] |
|
847
|
-
| options[:biz_attr] |
|
848
|
-
| options[:disable_cpt] |
|
849
|
-
| options[:threads] |
|
850
|
-
| options[:slice_size] |
|
851
|
-
| options[:cpt_file] |
|
852
|
-
| yield |
|
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 :
|
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, :
|
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 :
|
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, :
|
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
|
|
data/lib/cos/bucket.rb
CHANGED
@@ -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,
|
279
|
+
local_path = Util.get_local_path(file_src_path, true)
|
276
280
|
uploaded = []
|
277
281
|
|
278
282
|
Dir.foreach(local_path) do |file|
|
data/lib/cos/download.rb
CHANGED
data/lib/cos/exception.rb
CHANGED
data/lib/cos/file.rb
CHANGED
@@ -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
|
#
|
data/lib/cos/http.rb
CHANGED
data/lib/cos/resource.rb
CHANGED
@@ -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,
|
data/lib/cos/slice.rb
CHANGED
@@ -38,27 +38,35 @@ module COS
|
|
38
38
|
# 未完成的片段
|
39
39
|
@todo_parts = @parts.reject { |p| p[:done] }
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
|
data/lib/cos/version.rb
CHANGED
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.
|
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-
|
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
|
-
-
|
134
|
-
-
|
135
|
-
-
|
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.
|
195
|
+
rubygems_version: 2.0.14
|
196
196
|
signing_key:
|
197
197
|
specification_version: 4
|
198
198
|
summary: Tencent COS Ruby SDK.
|