8

Właśnie skonfigurowałem przesyłanie plików do Amazon S3 przy użyciu Rails 3 i Paperclip. Wszystko to działa zadziwiająco dobrze i działa. Jest tylko jeden mały szczegół, który chciałbym uporządkować. W tej chwili adresy URL to adresy amazon (tj. Początek http://s3.amazonaws.com) i chciałbym, aby zaczynały się od mojej domeny.Ukrywanie adresów URL amazonów podczas korzystania z S3, szyn i spinacza

Dodałem już potrzebne rekordy CNAME do mojego DNS i działają one dobrze, więc mogę uzyskać dostęp do plików za pośrednictwem subdomeny mojej domeny. Problem polega tylko na tym, że adresy URL wygenerowane przez spinacz zaczynają się od domeny amazon. Czy istnieje prosty sposób na zmianę konfiguracji spinacza, aby to obejść?

Cheers

Odpowiedz

5
+4

Konkretnie ': s3_alias_url' –

+2

Dzięki za to. Już to obejrzałem i nie mogłem tego zrobić, ale po tym, jak poprosiłeś o pomoc, ponownie spojrzałeś z nową energią i znalazłeś post Google Groups, który wyjaśnił mi problem. Opublikowali link w przypadku, gdy ktoś inny utknął na tym samym. Na zdrowie. https://groups.google.com/group/paperclip-plugin/browse_thread/thread/e1acd8339490438c?pli=1 – Addsy

+0

Może to opcja DNS? – AnApprentice

2

Oto wszystko, czego potrzeba, aby ukryć adresy URL swoich aktywów Amazon S3:

  1. Nazwa wiadro S3 po aliasu domeny, której chcesz użyć. Więc jeśli chcesz uzyskać dostęp do zasobów w http://assets.mysite.com/path/to/image.png to należy nazwać S3 wiadra: assets.mysite.com

  2. dodać CNAME do swoich rekordów DNS tak, że assets.mysite.com jest aliasem assets.mysite.com.s3.amazonaws.com (Nie obejmuje”.mysite. . com”w nazwanej pola rekordu DNS)

  3. spinacza Konfiguracja do korzystania z nowego aliasu domeny insetad domyślnej ścieżce S3:

    has_attached_file :my_file, 
        ... 
        :url => ':s3_alias_url' 
        :s3_host_alias => 'assets.mysite.com', 
        ... 
    

Zwykle mam różne wiadra do programowania, testowania i produkcji i używam tylko aliasu domeny dla wiadra prod. Tak aby upewnić się, że działa w każdym środowisku, mój :url często ustawienie tak:

:url => (ENV['USE_S3_ALIAS'] == 'TRUE' ? ':s3_alias_url' : ':s3_domain_url') 
Powiązane problemy