He estado intentando implementar FineUploader en Rails y me encuentro con el siguiente error:
No válido según la política: campos de entrada adicionales: success_action_status
Estoy usando el ejemplo de los documentos de FineUploader y mi firma y la firma de la política se están realizando correctamente. Parece que FineUploader está pasando "success_action_status" en el POST a S3 y eso está causando el problema.
¿Alguien sabe si necesito agregar algo adicional a mi política de depósito en S3 o necesito cambiar un parámetro en FineUploader?
Aquí está la implementación que estoy usando para el control FineUploader JS:
var uploader = new qq.s3.FineUploader({ element: document.getElementById('fine-uploader'), request: { endpoint: 'https://MyBUCKET.s3.amazonaws.com/', accessKey: 'MY_ACCESS_KEY' }, signature: { endpoint: 'home/generatesignature' }, uploadSuccess: { endpoint: '/s3/success' }, iframeSupport: { localBlankPagePath: '/success.html' } });Actualización Después de intentar que Rails funcionara con FineUploader, finalmente pude hacerlo funcionar. Para cualquiera que tenga problemas con la implementación de FineUploader/Rails, la clave es que la política de S3 se envía en el cuerpo de la publicación al servidor y eso es lo que debe codificarse y firmarse antes de regresar. Aquí está la acción para hacer que todo funcione en el lado del servidor en Rails
def generatesignature policy = Base64.encode64(request.raw_post).gsub("\n","") s3_signature = Base64.encode64( OpenSSL::HMAC.digest( OpenSSL::Digest::Digest.new('sha1'), 'YOUR_SECRET_KEY', policy) ).gsub("\n","") params[:signature]= s3_signature params[:policy] = policy render :json => params, :status => 200 and return end