Paperclip, s3 i Connection refused

Próbuję odpalić paperclipa z s3. Stworzyłem bucket, użytkownika na aws, dałem mu prawa do s3.
W aplikacji ustawiłem tokeny w config/aws.yml, w development.rb dałem:

  config.paperclip_defaults = {
    :storage => :s3,
    :s3_host_name => 'bjjbase.com.s3-website-us-west-2.amazonaws.com',
    :s3_credentials => {
      :bucket => 'bjjbase.com'
    }

I jak próbuję zuploadować obrazek to dostaję:

Connection refused - connect(2) for "bjjbase.com.s3-website-us-west-2.amazonaws.com" port 443

Skończyły mi się pomysły z szukaniem gdzie coś może być nie tak. Będę wdzięczny za pomoc.

A resztę credentiali (access_key_id, secret_access_key) podałeś?

Błąd jest na poziomie połączenia tcp więc autoryzacja nie ma tu nic do rzeczy. W sumie to nie pamiętam jak to jest z https na s3. Nie trzeba jakoś ręcznie tego włączać? Nie wymaga to jakiegoś certyfikatu? Popatrz na to:

$ telnet bjjbase.com.s3-website-us-west-2.amazonaws.com 80
Trying 54.231.162.35...
Connected to s3-website-us-west-2.amazonaws.com.
Escape character is '^]'.
$ telnet bjjbase.com.s3-website-us-west-2.amazonaws.com 443
Trying 54.231.162.35...
telnet: connect to address 54.231.162.35: Connection refused
telnet: Unable to connect to remote host

Jak widać dla http jest ok, natomiast na porcie 443 (https) nic nie nasłuchuje (albo blokuje jakis firewall).

Próbowałem także z hostem bjjbase.com.s3.amazonaws.com i dla niego https “działa” (połączenie jest, ale wysyła niepoprawny cerfyfikat).

Zobacz jeszcze na ten wątek: http://stackoverflow.com/questions/11201316/how-to-configure-ssl-for-amazon-s3-bucket

Ktoś coś pisze o tym, że https działa dla bucketów bez kropek (bo amazon ma wildcarda na *.s3.amazonaws.com). Ktoś inny pisze że za dodatkową opłatą można mieć https dla customowej domeny… Powodzenia.

Wczoraj ustawiałem appkę na heroku z rails 4 i ruby 2.1.5

w production.rb:

config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV[‘S3_BUCKET_NAME’],
:access_key_id => ENV[‘AWS_ACCESS_KEY_ID’],
:secret_access_key => ENV[‘AWS_SECRET_ACCESS_KEY’]
},
:bucket => ENV[‘S3_BUCKET_NAME’]
}

Wartości ENV podałem przez console heroku, przy innym hostingu byłby to plik secrets.yml. :bucket jest powtórzony, bo w różnych wersjach paperclipa może być inaczej -> a mi się po prostu nie chciało sprawdzać wczoraj o 23:00

Ważna okazała się wersja gema aws:

gem ‘aws-sdk’, ‘< 2.0’

Nowsza wersja rzucała błędem w moim przypadku.

Dzięki za pomoc, udało mi się w końcu to odpalić, nie chce mi się już wszystkiego testować ale na 99% wydaje się, że problem był w złym :s3_host_name.

Na wszelki wypadek założyłem nowy bucket bez kropki we Frankfurcie.
I początkowo dałem s3_host_name z panelu AWS , czyli bjjbase.s3-website.eu-central-1.amazonaws.com, dalej było to samo, zmieniłem to na s3.eu-central-1.amazonaws.com i śmiga.
Jeszcze raz, wielkie dzięki za pomoc.

Słuszna uwaga, dzięki za spostrzeżenie.