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"]

rackspace cloud file