Paperclip + S3 + Heroku,但出了点问题

时间:2016-04-03 22:12:28

标签: ruby-on-rails heroku amazon-s3 paperclip amazon

我已经按照一些教程(https://www.youtube.com/watch?v=0_2VBDoowHshttps://devcenter.heroku.com/articles/paperclip-s3)来将图像上传到我的应用上的Amazon S3

但我一直收到错误“我们很抱歉,但出了点问题。如果您是应用程序所有者,请查看日志以获取更多信息。”上传图片时

我想知道一种测试应用是否成功访问S3存储桶的方法。或者甚至是我可以检查发生了什么的日志,我只能访问heroku日志并且它没有太多帮助:

  

2016-04-03T21:24:05.972064 + 00:00 heroku [worker.1]:错误R12(退出)    超时) - >至少有一个进程未能在30秒内退出    SIGTERM

     

2016-04-03T21:24:05.972138 + 00:00 heroku [worker.1]:停止    使用SIGKILL

的剩余流程      

2016-04-03T21:24:07.795254 + 00:00    heroku [worker.1]:进程退出状态为137

2 个答案:

答案 0 :(得分:0)

要查看应用是否成功将图片上传到您的存储桶,只需尝试上传然后检查AWS上的存储桶。如果上传,中提琴。

以下是Heroku应用程序的一些有用的调试设置。

production.rb

# More meaningful logs
config.log_level = :debug

# More meaningful error pages
config.consider_all_requests_local = true

答案 1 :(得分:0)

所以,这很简单。

似乎Paperclip不支持更新版本的aws-sdk。因此我必须更改我的Gemfile才能使用aws-sdk 2.0或更早版本。

public class Z
{
    int[] next, prev;

    Z(int N) {
        prev = new int[N];
        next = new int[N];
        for (int i = 0; i<N; ++i) {
            // put element i in a list of its own
            next[i] = i;
            prev[i] = i;
        }
    }

    int first(int i) {
        // return first element of list containing i
        while (i != prev[i]) i = prev[i];
        return i;
    }

    int last(int i) {
        // return last element of list containing i
        while (i != next[i]) i = next[i];
        return i;
    }

    void update(int i, int j) {
        int f = first(j);
        int l = last(i);
        next[l] = f;
        prev[f] = l;
    }

    boolean query(int i, int j) {
        return last(i) == last(j);
    }
}

解决了这个问题。

感谢所有帮助。在development.rb中使用AWS键的环境变量有助于调试代码。