Method: COS::API#list

Defined in:
lib/cos/api.rb

#list(path, options = {}) ⇒ Object

目录列表/前缀搜索

Parameters:

  • 目录路径, 如: ‘/’, ‘path1’, ‘path1/path2’, sdk会补齐末尾的 ‘/’

  • (defaults to: {})

Options Hash (options):

  • :bucket (String)

    bucket名称

  • :prefix (String)

    搜索前缀如果填写prefix, 则列出含此前缀的所有文件及目录

  • :num (Integer)

    每页拉取的数量, 默认20条

  • :pattern (Symbol)

    获取方式:dir_only 只获取目录, :file_only 只获取文件, 默认为 :both 全部获取

  • :order (Symbol)

    排序方式:asc 正序, :desc 倒序 默认为 :asc

  • :context (String)

    页码若需要翻页,需要将前一页返回值中的context透传到参数中若order为:asc,则从当前页正序/往下翻页;若order为:desc,则从当前页倒序/往上翻

Returns:

  • Hash

    • :context [String] 透传字段,用于翻页,需要往前/往后翻页则透传回来

    • :has_more [Boolean] 是否有内容可以继续往前/往后翻页

    • :dircount [Integer] 子目录数量(总)

    • :filecount [Integer] 子文件数量(总)

    • :infos [Array<Hash>] 列表结果(可能为空)

      • :name [String] 目录名/文件名

      • :biz_attr [String] 目录/文件属性,业务端维护

      • :filesize [Integer] 文件大小(当类型为文件时返回)

      • :filelen [Integer] 文件已传输大小(通过与filesize对比可知文件传输进度,当类型为文件时返回)

      • :sha [String] 文件sha1(当类型为文件时返回)

      • :ctime [String] 创建时间(Unix时间戳)

      • :mtime [String] 修改时间(Unix时间戳)

      • :access_url [String] 生成的资源可访问的url(当类型为文件时返回)

Raises:

  • 服务端异常返回

See Also:



167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/cos/api.rb', line 167

def list(path, options = {})
  bucket  = config.get_bucket(options[:bucket])
  sign    = http.signature.multiple(bucket)
  resource_path = Util.get_resource_path(config.app_id, bucket, path, options[:prefix])

  pattern = case options[:pattern].to_s.to_sym
              when :dir_only
                'eListDirOnly'
              when :file_only
                'eListFileOnly'
              else
                'eListBoth'
            end

  query = {
      op:       'list',
      num:      options[:num] || 20,
      pattern:  pattern,
      order:    options[:order].to_s.to_sym == :desc ? 1 : 0,
      context:  options[:context]
  }

  http.get(resource_path, {params: query}, sign)
end