2009-12-15 16 views
6

Jestem tutaj trochę marynowany. Obecnie mam witrynę hostowaną we wspólnym środowisku hostingowym przez zewnętrznego dostawcę usług hostingowych. W związku z tym nie mam uprawnień administratora do serwera IIS, na którym ta witryna jest włączona.Przenoszenie plików do Amazon S3 przy zachowaniu adresów URL

Obecnie mam katalogu na stronie, takich jak:

mysite.com/myfiles

Katalog „MyFiles” obecnie posiada wiele plików w nim. Tyle plików, że umieszcza mnie na przydział miejsca na dysku mojego hosta. Jest kilka rzeczy do rozważenia:

  1. Gospodarz nie ma lepszego planu, abyśmy mogli go uaktualnić. Są tylko gotowi obciążyć nas (bardzo wysokie) opłaty za nadwyżkę.

  2. Musimy pozostać z tym hostem do końca naszej umowy z nimi, co jest prawie o rok.

Chciałbym wziąć zawartość tego katalogu i umieścić go na Amazon S3, co zmniejszyłoby obciążenie dysku na koncie hostingowym. Jedynym problemem jest to, że adresy URL do plików muszą pozostać takie same!

Na przykład, jeśli zewnętrzna strona internetowa prowadzi do strony mysite.com/myfiles/image.jpg, chcę, aby obraz na tej stronie działał bez żadnych problemów.

Czy jest jakiś sposób na osiągnięcie tego?

Odpowiedz

9

Zalecam utworzenie wiaderka S3 (i być może dystrybucji Cloudfront, która znajduje się nad nim), wypełnionego układem folderów, który odpowiadałby twojej istniejącej witrynie (w celu przyszłej migracji). Następnie utwórz wpis CNAME w swoim DNS, aby nadać swojemu zasobnikowi/dystrybucji przyjazną nazwę (np. s3.my.domain).

Następnie dodaj przepisujący URL do istniejącej witryny, która przekazuje żądania dla http://my.domain/myfiles/xxx do zgodnego adresu URL S3, np. `http://s3.my.domain/myfiles/xxx '.

Po zakończeniu umowy hostingu zmień DNS, aby wskazywać pozycje root i www na wiadrze/dystrybucji lub innym hoście, zgodnie z wymaganiami.

Używam obecnie Cloudfront do geograficznego buforowania statycznych treści dla jednej z moich firm i działa świetnie; zero przestojów do tej pory ( ~ 6   ponad 12 miesięcy).


czerwca 2010: CloudFront był doskonały, o wiele tańsze niż w poprzednim układzie hostingowych. Aktualnie obsługujemy około 2,5 miliona żądań miesięcznie (~ 750 GB) za jedyne 120 USD.

0

Możesz znaleźć informacje o tym, czego potrzebujesz, przeglądając dokumentację dla Amazon S3 Virtual Hosting of Buckets. Możesz dostosować nazwę hosta, która będzie używana do uzyskiwania dostępu do plików S3, co może pomóc w zrobieniu tego, co musisz zrobić.

0

Pierwsze pytanie: dlaczego posiadanie nieprzerwanych adresów URL w witrynie jest ważne dla zewnętrznych stron? Czy płacą ci za treść? Jeśli nie płacą Ci za treści, czy możesz uzyskać korzyści, udostępniając je za darmo?To jest decyzja biznesowa i być może dochodzisz do wniosku, że warto płacić za nadwyżki, aby dostarczyć te treści.

Drugie pytanie: ile adresów URL jest faktycznie powiązanych z witrynami stron trzecich? Możesz poświęcić trochę czasu, aby zachować te adresy URL i przełączyć wszystko na hosting S3. Zapytanie "link:" Google może pomóc w odpowiedzi na to pytanie.

Rozwiązania: pierwsze rozwiązanie działa, jeśli masz możliwość tworzenia 301 przekierowań. Po prostu skonfiguruj przekierowanie dla każdego adresu URL, który chcesz przenieść.

Drugim rozwiązaniem jest odwrotne proxy, w którym adresy URL na mysite.com są mapowane na mysite.s3.amazon.com. Nie jestem pewien, czy to naprawdę dobre rozwiązanie; będziesz płacić za przepustowość, aby proxy plików. Dodatkowo, jeśli masz możliwość ustawienia odwrotnego proxy, masz możliwość tworzenia 301 przekierowań.

Trzecie rozwiązanie: przenieś witrynę masowo i mapuj nazwę domeny na S3 (poprzez mapowanie CNAME). Tak, w końcu płacisz za usługę hostingową, z której już nie korzystasz. A jeśli użyjesz dynamicznej zawartości, to nie zadziała (ale być może zapłacisz 30 USD/miesiąc za S3).

Na koniec nie rozwiązanie, ale ścieżka do przodu: użyj odrębnej nazwy domeny, aby uzyskać dodatkową zawartość statyczną. Ta nazwa domeny może być mapowana za pomocą rekordu CNAME do zasobnika Amazon.

+1

Ważne jest, aby witryny stron trzecich zawierały nieprzerwany adres URL witryny, ponieważ istnieje wiele witryn, które odsyłają do naszej witryny, a także mają rzeczywiste obrazy osadzone w ich witrynach (za naszą zgodą), które żądają rzeczywisty obraz z naszego serwera. Chcemy zachować te linki i zapobiegać niszczeniu tych obrazów. Czemu? Uważam, że należy być rozważnym. Odpowiedź na drugie pytanie brzmi, że nie mamy możliwości dowiedzenia się, gdzie dokładnie znajdują się wszystkie zewnętrzne adresy URL. Nie jestem zadowolony z zakresu lub dokładności zapytania "link:" Google. –

0

Przenieś pliki i skonfiguruj program obsługi 404 w katalogu. Program obsługi 404 może przekierować klienta ze statusem 301 lub 302 do adresu URL S3 w sposób przezroczysty. Inne zalecenia dotyczące przepisywania adresów URL prawdopodobnie nie będą działać dla plików innych niż aspx, ponieważ jesteś na współdzielonym dostawcy hostingu i zazwyczaj nie obsługują mapowania ASP.NET z użyciem symboli wieloznacznych.

Powiązane problemy