Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Joe Fraddy en 15 Agosto 2017, 19:10 pm



Título: rails error en metodo
Publicado por: Joe Fraddy en 15 Agosto 2017, 19:10 pm
Amigos, no estoy seguro si va aquí o en desarrollo web, pero allí va la pregunta sobre este error, en el que intento subir un archivo a un bucket S3 de amazon:

NoMethodError in UploadsController#create
undefined method `write' for #<Aws::S3::Object:0x007ff0981bb850>

Código
  1.    # Upload the file
  2.    obj.write(
  3.      file: params[:file],
  4.      acl: :public_read
  5.    )
  6.  


Este es mi código:


Código
  1. class UploadsController < ApplicationController
  2.  
  3.  def new
  4.  
  5.  end
  6.  
  7.  def create
  8.  
  9.   # Make an object in your bucket for your upload
  10.    obj = S3_BUCKET.object(params[:file].original_filename)
  11.  
  12.    # Upload the file
  13.    obj.write(
  14.      file: params[:file],
  15.      acl: :public_read
  16.    )
  17.  
  18.    # Create an object for the upload
  19.    @upload = Upload.new(
  20. url: obj.public_url,
  21. name: obj.key
  22. )
  23.  
  24.    # Save the upload
  25.    if @upload.save
  26.      redirect_to uploads_path, success: 'File successfully uploaded'
  27.    else
  28.      flash.now[:notice] = 'There was an error'
  29.      render :new
  30.    end
  31.  end
  32.  
  33.  def index
  34.   @uploads = Upload.all
  35.  end
  36. end
  37.  

Estoy usando la versión 2 de aws-sdk, pero al parecer si está bien:

Porque esto es lo que me trae:

Código:
Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"KNpjxo3vZBXKpno9JVGJXu69fxBpwjNdfY8p1f9fleaaecfk3I7avRk42v5FqKwIqMS6puX2Qm9GJhrn5rCB+w==",
 "file"=>
  #<ActionDispatch::Http::UploadedFile:0x007ff0a8030890
   @content_type="image/jpeg",
   @headers="Content-Disposition: form-data; name=\"file\"; filename=\"lake-louise-alberta.jpg\"\r\nContent-Type: image/jpeg\r\n",
   @original_filename="lake-louise-alberta.jpg",
   @tempfile=#<File:/tmp/RackMultipart20170815-9057-16b57sd.jpg>>,
 "commit"=>"Upload file"}


Saludos!!