rackspace cloud filesへのファイルアップロード
rubygemsにrackspace-cloudfilesというgemがあるがver 1.4.0で古い
githubから最新版(1.4.7)を落としてきてgemにしてインストールする
git clone http://github.com/rackspace/ruby-cloudfiles.git cd ruby-cloudfiles gem build cloudfiles.gemspec sudo gem install cloudfiles-1.4.7.gem
1.4.0でも一応動くけどファイルをアップロードできているのにできていない事になるよくない
rackspace-file-upload.rb
#!/usr/bin/env ruby # -*- coding: utf-8 -*- require 'rubygems' require 'cloudfiles' USER = "your-name" KEY = "your-api-key" filename = ARGV.first puts filename cf = CloudFiles::Connection.new(USER, KEY) puts 'containers:' p cf.containers cn = cf.container('shokai') # コンテナを指定 puts "upload #{filename} to shokai:" obj = cn.create_object("tmp/"+filename.split(/\//).last) # ディレクトリ作ってオブジェクト作成 begin if obj.write open(filename).read puts "success : #{obj.public_url}" end rescue puts 'error' end puts 'files in shokai:' p cn.objects
アップしてみる
ruby rackspace-file-upload.rb ~/Pictures/selected/shokai.jpg
/Users/sho/Pictures/selected/shokai.jpg containers: [".CDN_ACCESS_LOGS", "shokai", "test"] upload /Users/sho/Pictures/selected/shokai.jpg to shokai: success : http://c0001655.cdn1.cloudfiles.rackspacecloud.com/tmp/shokai.jpg files in shokai: ["test.txt", "shokai.jpg", "tmp/shokai.jpg"]