Giter Site home page Giter Site logo

ruby-sdk's Introduction

Qiniu Resource (Cloud) Storage SDK for Ruby

LICENSE Build Status GitHub release Coverage Status Gem Version Dependency Status Code Climate

关于

此 Ruby SDK 基于 七牛云存储官方API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构的服务或应用,通过七牛云存储及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。

支持的 Ruby 版本:

  • Ruby 2.1.x
  • Ruby 2.2.x
  • Ruby 2.3.x
  • Ruby 2.4.x
  • Ruby 2.5.x
  • Ruby 2.6.x
  • Ruby 2.7.x
  • JRuby 9.x

如果您的应用程序需要在 Ruby 1.9、2.0 或 JRuby 1.7 上运行,请使用此 Ruby SDK 的 6.6.0 版本。

安装

在您 Ruby 应用程序的 Gemfile 文件中,添加如下一行代码:

gem 'qiniu', '>= 6.10.0'

然后,在应用程序所在的目录下,可以运行 bundle 安装依赖包:

$ bundle

或者,可以使用 Ruby 的包管理器 gem 进行安装:

$ gem install qiniu

使用

参考文档:七牛云存储 Ruby SDK 使用指南

贡献代码

  1. Fork
  2. 创建您的特性分支 (git checkout -b my-new-feature)
  3. 提交您的改动 (git commit -am 'Added some feature')
  4. 将您的修改记录提交到远程 git 仓库 (git push origin my-new-feature)
  5. 然后到 github 网站的该 git 远程仓库的 my-new-feature 分支下发起 Pull Request

许可证

Copyright (c) 2012-2014 qiniu.com

基于 MIT 协议发布:

ruby-sdk's People

Contributors

bachue avatar bianjp avatar bluntblade avatar bookinstock avatar clouddxy avatar dekexu avatar eric-guo avatar forrest-mao avatar foxling avatar hantuo avatar hayeah avatar huacnlee avatar hungyuhei avatar huobazi avatar itsliupeng avatar jemygraw avatar ledowong avatar lidaobing avatar liluo avatar longbai avatar longshanksmo avatar mei-zhao avatar okbang9 avatar rainux avatar songjiayang avatar why404 avatar xushiwei avatar xuzhaokui avatar xwen-winnie avatar zhouguangming avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ruby-sdk's Issues

gem安装问题

Resolving dependencies...
Bundler could not find compatible versions for gem "mime-types":

  In Gemfile:
    qiniu (~> 6.4.1) ruby depends on
      mime-types (~> 2.4.3) ruby

    rails (= 4.2.0) ruby depends on
      actionmailer (= 4.2.0) ruby depends on
        mail (>= 2.5.4, ~> 2.5) ruby depends on
          mime-types (2.6.1)

Qiniu::Storage.fetch 报 502 错误

我按照官网上的文档写的

code, result, response_headers = Qiniu::Storage.fetch(bucket, target_url, key)

结果返回


code, result, response_headers = Qiniu::Storage.fetch(bucket, target_url, key)

W, [2016-11-09T17:59:45.754746 #44339]  WARN -- : HTTP status code 478 => Qiniu::HTTP.post('http://iovip.qbox.me/fetch/cWRhaWx5dGVzdA==/to/aHR0cDovL3Rlc3RpbWcucWRhaWx5LmNvbS9hcnRpY2xlL2FydGljbGVfc2hvdy8yMDE2MDcwMzE4MDk1MWdxeXg3TUFhaGRTNHZVQ0wuanBnOnFpbml1LnBuZw==')
 => [478, {"error"=>"httpGet url failed: E502"}, {"server"=>["nginx"], "date"=>["Wed, 09 Nov 2016 09:59:45 GMT"], "content-type"=>["application/json"], "content-length"=>["36"], "connection"=>["close"], "x-log"=>["QINIUPROXY:3/502;gS.h:4;IO:4/478"], "x-reqid"=>["sT4AAOAMl7a0WIUU"]}]

UP._block_count

def _block_count(fsize)
   (fsize + Config.settings[:block_size] - 1) / Config.settings[:block_size]).to_i
end

为什么要减1?

stat方法能否不屏幕打印warn吗?

我用Qiniu::Storage.stat方法查看一个文件是否上传,没有上传对我的应用来说也不是错误,但是却会屏幕打印警告,我看了程序这里打印的。能否不打印或者给个选项呢?

关于上传策略初始化的疑问

https://github.com/qiniu/ruby-sdk/blob/master/lib/qiniu/auth.rb 中,在初始化 PutPolicy 时,只能传递 bucket, key, expires_in, deadline 等4个参数:

      class PutPolicy
        private
        def initialize(bucket,
                       key = nil,
                       expires_in = DEFAULT_AUTH_SECONDS,
                       deadline = nil)
       ....

若有其他的 policy(如 mimeLimit),则须使用如下方式进行设置:

@put_policy = Qiniu::Auth::PutPolicy.new(bucket.name, nil, bucket.expires_in)
@put_policy.mime_limit = Settings.qiniu.policy.mimeLimit

实际使用时可能有很多policy,这样逐一赋值很麻烦,是否考虑 PutPolicy 可以接收更多的参数呢?

参考:

callback验证

客户端直传,回调服务器接收回调请求时需要验证请求的有效性,好像没找到方法。
通过文档实现了一下

      def authenticate_callback(auth, body, path, secret_key, access_key)

        data = path + "\n" + body

        callback_access_key, encoded_data = auth[5..-1].split(":")

        return false if callback_access_key != access_key

        Base64.urlsafe_encode64(HMAC::SHA1.new(secret_key).update(data).digest) == encoded_data
      end

ArgumentError when try throw NoSuchFileError

ArgumentError when try throw NoSuchFileError


[2012/06/28 22:22:26][error]   Reason: ArgumentError
[2012/06/28 22:22:26][error]   wrong number of arguments (0 for 1)
[2012/06/28 22:22:26][error] 
[2012/06/28 22:22:26][error] Backtrace:
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/qiniu-rs-2.0.1/lib/qiniu/rs/exceptions.rb:82:in `initialize'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/qiniu-rs-2.0.1/lib/qiniu/rs/io.rb:24:in `exception'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/qiniu-rs-2.0.1/lib/qiniu/rs/io.rb:24:in `raise'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/qiniu-rs-2.0.1/lib/qiniu/rs/io.rb:24:in `put_file'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/qiniu-rs-2.0.1/lib/qiniu/rs.rb:35:in `upload'
[2012/06/28 22:22:26][error]   /Users/ldb/workspace/lidaobing/backup2qiniu/lib/backup/storage/qiniu.rb:28:in `block in transfer!'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/backup-3.0.24/lib/backup/storage/base.rb:79:in `block in files_to_transfer_for'
[2012/06/28 22:22:26][error]   /Users/ldb/.rvm/gems/ruby-1.9.3-p194/gems/backup-3.0.24/lib/backup/storage/base.rb:78:in `each'

introduce Qiniu::RS.logger = ...

Hi,

how about introduce Qiniu::RS.logger = ..., which make user no longer required to use Qiniu::RS::Log.logger = ... and which is more familar with Rails.logger = ...

thanks

how about add NEWS.md

when you release a new version, I don't know what's new in your new version.

so how about provide a NEWS.md file

thanks

host_manager文件中的BucketIsMissing的错误类没有引入

host_manager 中的 BucketIsMissing 错误常量类没有引入,如果uploade_with_token2 rescue它时候会报出z找不到常量

错误出处:upload_with_token_2 方法
### 发送请求
HTTP.api_post(url, post_data)
rescue BucketIsMissing #<==这里
raise 'upload_with_token_2 requires :bucket option when multi_region is enabled'
end # upload_with_token_2

解决办法
在upload_with_token2的rescue 跑出错误类型前边加上module名
#Qiniu::BucketIsMissing
或者autoload一下
#class BucketIsMissing < RuntimeError; end
autoload :BucketIsMissing, 'qiniu/host_manager'

生成上传凭证时报告“The underlying hash algorithm has not yet been initialized.”

我今天在照着文档 调试时,发现生成上传凭证的时候出现了来自ruby-hmac的异常,相关代码以及错误信息如下:

[1] pry(main)> put_policy = Qiniu::Auth::PutPolicy.new 'bucket_name'
=> #<Qiniu::Auth::PutPolicy:0x00000105d10e38
 @bucket="bucket_name",
 @deadline=1409707751,
 @expires_in=3600,
 @key=nil,
 @scope="bucket_name">
[2] pry(main)> uptoken = Qiniu::Auth.generate_uptoken(put_policy)
RuntimeError: The underlying hash algorithm has not yet been initialized.
from /Users/martin/.rvm/gems/ruby-2.0.0-p451/gems/ruby-hmac-0.4.0/lib/hmac.rb:36:in `check_status'

请问是否是依赖组件出问题了?

uptoken有什么用?

我看到demo里面有生成一个uptoken, 但是具体使用的时候只用到了put_policy

#!/usr/bin/env ruby

require 'qiniu'

# 已在某处调用Qiniu#establish_connection!方法

put_policy = Qiniu::Auth::PutPolicy.new(
    bucket,
    key, 
    expires_in,
    deadline
)

# 这里有什么用?
uptoken = Qiniu::Auth.generate_uptoken(put_policy)

# 上传
code, result, response_headers = Qiniu::Storage.upload_with_put_policy(
    put_policy,
    local_file,
    key,
    x_var
)

rails 4 依赖的 mime-types 版本不兼容 qiniu sdk

Bundler could not find compatible versions for gem "mime-types":
  In snapshot (Gemfile.lock):
    mime-types (= 2.5)

  In Gemfile:
    rest-client (>= 0) ruby depends on
      mime-types (< 3.0, >= 1.16) ruby

    rails (= 4.2) ruby depends on
      actionmailer (= 4.2.0) ruby depends on
        mail (>= 2.5.4, ~> 2.5) ruby depends on
          mime-types (< 3, >= 1.16) ruby

    qiniu (~> 6.4.1) ruby depends on
      mime-types (~> 2.4.3) ruby

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

vframe操作是否有缓存

@longbai @lidaobing @ledowong 我在你们fetch方法的例子中,看到saveas的操作,这个意思是截帧服务是耗时操作,截取之后需要保存,下次直接访问这个保存的截图,以此来加快访问截图的速度么?
请问视频截帧能否像图片一样,通过在视频的访问url后面加上vframe的参数来访问?如果可以的话,这种访问的方式,是否有缓存?还是说每次访问都会去进行耗时的截帧操作?

gem mime-type version

I was trying to use this sdk gem in my Rails 4 application but ran into a gem version conflict. During 'bundle' execution, Rails complains:

Bundler could not find compatible versions for gem "mime-types":
  In Gemfile:
    qiniu (>= 0) ruby depends on
      mime-types (~> 1.19) ruby

    capybara (>= 0) ruby depends on
      mime-types (2.3)

Wonder if this sdk could upgrade its gemfile? Thanks!

after install gem got error msg

/Users/railsmax/.rvm/gems/ruby-1.9.3-p448-railsexpress/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- /Users/railsmax/.rvm/gems/ruby-1.9.3-p448-railsexpress/gems/qiniu-6.1.0/lib/qiniu/qiniu (LoadError)

访问 http://uc.qbox.me 报告 Connection reset by peer

https://github.com/qiniu/ruby-sdk/blob/master/lib/qiniu/host_manager.rb#L69

在检查可用的 hosts 的时候访问的是 http 的请求, 但是通过 curl 来测试获取 hosts 的 api 的时候已经进行了 connection reset , 猜测和最近的全站 https 有关, 但 sdk 中并没有进行更新.

SDK 中默认使用的 http
image

使用 https 的有情况
image

使用时的 WARN 日志
image

https://github.com/qiniu/ruby-sdk/blob/master/lib/qiniu/config.rb 中有很多 url 相关参数, 并不确定是否都需要改为 https. 多数 API 用户本身不会使用到, 所以无法测试更多.

upload_with_token_2方法少了一个参数?

我按照文档中的upload_with_token_2方法写上传测试,会报BucketIsMissing错误,但是bucket_name在生成token的时候就传入了,所以十分奇怪。 后来看了upload_with_token_2方法的代码才发现,调用upload_with_token_2方法时得再传一遍bucket参数,在opts参数中加入就可以了。
所以是不是可以改改rubySDK的文档,调用upload_with_token_2时,加入bucket参数的提示,或者就generate_uptoken就将bucket参数存入�Config。

关于 async_options 的建议

场景如下:
我有一个bucket名为spec-test
定义两个style的数据处理,分别设定如下:

别名:large 
处理:imageMogr/v2/thumbnail/720>/quality/75

别名:small
处理:imageMogr/v2/thumbnail/320>/quality/40

我希望对在上传图片后就进行异步预处理调用这两处设定
经过查阅api和sdk文档可知,需要在generate_upload_tokenasync_options内传入 imageMogr/v2/thumbnail/320>/quality/40 这样定设定

其不变之处在于,当未来定某天,我需要将版本small修改为宽度321时需要使用 qboxrsctl 工具重新设定该该style为imageMogr/v2/thumbnail/321>/quality/40,同时还需要修改generate_upload_token内的async_options设定,这样需要多处维护,比较麻烦。

理想的方式是:在generate_upload_tokenasync_options内也可以传入style的name比如 :async_options => 'small;large;other'
你们api内部应该可以根据这些style的name找到对应的 imageMogr/v2/thumbnail/320>/quality/40 这样的设定,继续做后续工作。

Exception autoload 问题

当我直接调用 Qiniu.upload_file 的时候出现 uninitialized constant Module::MissingArgsError. 很可能是 autoload 的是 Exception, 但是使用 MissingArgsError 的时候不会触发 autoload. 可以改为 require 'qiniu/exceptions'. 版本 '6.5.1'

License missing from gemspec

Some companies will only use gems with a certain license.
The canonical and easy way to check is via the gemspec,

via e.g.

spec.license = 'MIT'
# or
spec.licenses = ['MIT', 'GPL-2']

Even for projects that already specify a license, including a license in your gemspec is a good practice, since it is easily
discoverable there without having to check the readme or for a license file. For example, it is the field that rubygems.org uses to display a gem's license.

For example, there is a License Finder gem to help companies ensure all gems they use
meet their licensing needs. This tool depends on license information being available in the gemspec. This is an important enough
issue that even Bundler now generates gems with a default 'MIT' license.

If you need help choosing a license (sorry, I haven't checked your readme or looked for a license file), github has created a license picker tool.

In case you're wondering how I found you and why I made this issue, it's because I'm collecting stats on gems (I was originally looking for download data) and decided to collect license metadata,too, and make issues for gemspecs not specifying a license as a public service :).

I hope you'll consider specifying a license in your gemspec. If not, please just close the issue and let me know. In either case, I'll follow up. Thanks!

p.s. I've written a blog post about this project

should load qiniu/rs/exceptions eagerly

$ ruby -e "require 'qiniu-rs'; Qiniu::RS.upload_file"
/Users/ldb/.rvm/gems/ruby-2.0.0-p0/gems/qiniu-rs-3.4.2/lib/qiniu/rs.rb:107:in `upload_file': uninitialized constant Module::MissingArgsError (NameError)
    from -e:1:in `<main>'

mime-types 的升级是不是太激进了,rails 3 被抛弃了么?

Rails 3.2.21

└> bundle
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Bundler could not find compatible versions for gem "mime-types":
  In Gemfile:
    rails (= 3.2.21) ruby depends on
      actionmailer (= 3.2.21) ruby depends on
        mail (~> 2.5.4) ruby depends on
          mime-types (~> 1.16) ruby

    carrierwave-qiniu (= 0.1.6) ruby depends on
      qiniu (~> 6.4.1) ruby depends on
        mime-types (2.4.3)

https://github.com/rails/rails/blob/v3.2.21/actionmailer/actionmailer.gemspec#L23
https://github.com/mikel/mail/blob/2.5.4/mail.gemspec#L19
事实上 Rails 4.1.5 也是如此 https://github.com/rails/rails/blob/v4.1.5/actionmailer/actionmailer.gemspec#L25

ref: #108

@lidaobing @why404 @ikbear

rails 4.1.8 ruby 2.12 有冲突

➜  wzhw_erp git:(master) ✗ rails c
/Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/qiniu-6.2.4/lib/qiniu/qiniu (LoadError)
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/qiniu-6.2.4/lib/qiniu-rs.rb:2:in `<top (required)>'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/carrierwave-qiniu-0.1.0/lib/carrierwave/storage/qiniu.rb:3:in `<top (required)>'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/carrierwave-qiniu-0.1.0/lib/carrierwave-qiniu.rb:2:in `<top (required)>'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `each'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:72:in `block in require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `each'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:61:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler.rb:133:in `require'
    from /Users/alvin/Projects/wzhw_erp/config/application.rb:7:in `<top (required)>'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:82:in `require'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:82:in `preload'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:140:in `serve'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:128:in `block in run'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `loop'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `run'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /Users/alvin/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

上传的文件内容被修改

我使用如下语句上传tar文件:

code, result = Qiniu::Storage.upload_with_token_2(
      uptoken, "#{ConfigStore.package_root}/#{tar_name}", tar_name, nil,
      bucket: Bucket)

然而上传后的文件内容竟然被修改了。。

Binary files 1/lib/libz.1.2.8.dylib and 2/lib/libz.1.2.8.dylib differ
Binary files 1/lib/libz.1.dylib and 2/lib/libz.1.dylib differ
Binary files 1/lib/libz.a and 2/lib/libz.a differ
Binary files 1/lib/libz.dylib and 2/lib/libz.dylib differ
diff -r 1/lib/pkgconfig/zlib.pc 2/lib/pkgconfig/zlib.pc
1c1
< prefix=/opt/starman/software/zlib/1.2.8/236f890ed937aab14cf5925db5a4b6b2689509e6
---
> prefix=/opt/starman/software/zlib/1.2.8/3c9e326570a52e31e447f7842c1a4f6727c7ee03

只能先上传到本地吗?

local_file 意味着用户只能先上传文件到服务器,然后服务器再上传到七牛吗?没有直接上传二进制流的方法吗,nodejs就有类似的方法,为什么ruby sdk没有呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.