2013-07-16 40 views
2

我写了一个代码来上传s3上的文件,并且它与Ruby一起工作正常。aws/s3宝石与Jruby不兼容

我试图运行使用JRuby相同的代码,但我的代码被上传功能

步骤,我跟着

  1. 安装宝石卡之前: - 的JRuby -S创业板安装AWS-S3
  2. 我的代码
require 'aws/s3' 
local_file = ARGV[0] 
bucket = ARGV[1] 
AWS::S3::Base.establish_connection!(
    access_key_id: 'put_access_key', 
    secret_access_key: 'put_secret_access_key') 
base_name = File.basename(local_file) 
AWS::S3::S3Object.store(
    base_name, 
    File.open(local_file), 
    bucket, 
    access: :public_read) 
puts 'Uploaded!' 
url = s3_obj.url_for(
    "#{local_file}", 
    "#{bucket}", 
    authenticated: false) 
puts "#{url}" 
  1. 冉文件中像这样 JRuby的file_name.rb upload_file_name.html斗
+0

尝试AWS-SDK宝石检查了这一点[链接](https://gist.github.com/IndianGuru/1194616) –

回答

1

我发现,在使用AWS-S3宝石JRuby的一个问题。

所以,我想它使用 “AWS-SDK” 宝玉

  1. jruby -S gem install aws-sdk
  2. 编写代码上传文件到S3为
require 'aws-sdk' 
file_name = ARGV[0] 
bucket = ARGV[1] 
AWS.config(
    access_key_id: 'PUT ACCESS KEY', 
    secret_access_key: 'PUT SECRET KEY') 
s3 = AWS::S3.new 
base_name = File.basename(file_name) 
o = s3.buckets[bucket].objects[base_name].write(File.open(file_name)) 
puts '--------------Uploaded!-------------------' 
o.acl = :public_read_write 
url = o.public_url 
puts "#{url}" 

  1. 把它保存在ruby文件中并运行它下面给出

    的JRuby file_name.rb upload_file_name.html path_bucket_where_to_upload

使用此 DOC,这给知道如何使用 “宝石AWS-SDK”