2009-12-15 28 views
6

Qui sono un po 'sottaceto. Al momento ho un sito web ospitato in un ambiente di hosting condiviso da un provider di hosting di terze parti. Pertanto, non ho accesso root al server IIS su cui si trova questo sito web.Spostamento di file su Amazon S3 mantenendo gli URL

Al momento ho una directory sul sito, come ad esempio:

mysite.com/myfiles

La directory "myfiles" attualmente ha un sacco di file in essa contenuti. Così tanti file che mi sta ponendo la quota di spazio del disco sul mio host. Ci sono un paio di cose da considerare ora:

  1. L'host non ha un piano più generoso per noi per l'aggiornamento a. Sono disposti solo a farci pagare (molto alte) le tariffe di sovrappeso.

  2. Abbiamo bisogno di rimanere con questo host fino alla fine del nostro contratto con loro, che è quasi un anno di distanza.

Vorrei prendere il contenuto di questa directory e metterlo su Amazon S3, che avrebbe alleviare lo sforzo spazio su disco sul conto di hosting. L'unico problema è che l'URL dei file deve rimanere lo stesso!

Quindi, ad esempio, se un sito Web esterno si collega a mysite.com/myfiles/image.jpg, voglio che l'immagine su quel sito continui a funzionare senza intoppi.

Esiste un modo per raggiungere questo obiettivo?

risposta

9

Suggerirei di creare un bucket S3 (e forse una distribuzione Cloudfront su di esso), riempito con un layout di cartella che corrisponderebbe al sito esistente (per la migrazione futura). Quindi crea una voce CNAME nel tuo DNS per dare un nome descrittivo al tuo bucket/distribuzione (ad esempio s3.my.domain).

Quindi aggiungere un URL rewriter al sito esistente che inoltra le richieste per http://my.domain/myfiles/xxx all'URS S3 corrispondente, ad es. `http://s3.my.domain/myfiles/xxx '.

Al termine del contratto di hosting, modificare il DNS in modo che punti la radice e le voci www nel bucket/distribuzione o in un altro host come richiesto.

Attualmente sto utilizzando Cloudfront per archiviare geograficamente il contenuto statico per una delle mie attività e funziona benissimo; tempo morto zero finora ( ~ 6   oltre 12 mesi).


giugno 2010: Cloudfront è stata eccellente, molto più conveniente che la disposizione di hosting precedente. Al momento stiamo scontando circa 2,5 milioni di richieste al mese (~ 750 GB) per soli $ 120.

0

È possibile trovare informazioni su ciò che è necessario consultando la documentazione Virtual Hosting of Buckets per Amazon S3. È possibile personalizzare il nome host che verrà utilizzato per accedere ai file S3, che può aiutare a fare ciò che è necessario fare.

0

Prima domanda: perché è importante per i siti di terze parti avere URL ininterrotti per il tuo sito? Ti stanno pagando per i contenuti? Se non ti stanno pagando per i contenuti, c'è qualche vantaggio che ottieni dando loro dei contenuti gratis?Questa è una decisione aziendale, e forse sei giunto alla conclusione che vale la pena pagare le tasse di sovraprezzo per fornire quel contenuto.

Seconda domanda: quanti URL sono effettivamente collegati da siti di terze parti? Potresti prenderti il ​​tempo necessario per mantenere questi URL disponibili e passare a qualsiasi altro hosting S3. Una query "link:" di Google può aiutarti a rispondere a questa domanda.

Quindi, alle soluzioni: la prima soluzione funziona se si ha la possibilità di creare reindirizzamenti 301. Basta impostare un reindirizzamento per ogni URL che si desidera spostare.

La seconda soluzione è un proxy inverso, in cui gli URL su mysite.com sono mappati su mysite.s3.amazon.com. Non sono sicuro che questa sia davvero una buona soluzione; pagherai per la larghezza di banda per il proxy dei file. Inoltre, se hai la possibilità di impostare un proxy inverso, hai la possibilità di creare reindirizzamenti 301.

Terza soluzione: spostare il sito in massa e mappare il nome del dominio su S3 (tramite mappatura CNAME). Sì, finisci per pagare per un servizio di hosting che non usi più. E se usi contenuti dinamici, non funzionerà (ma forse pagherai $ 30 al mese per S3).

Infine, non una soluzione, ma un percorso in avanti: utilizzare un nome di dominio distinto per il contenuto statico aggiuntivo. Quel nome di dominio può essere mappato tramite CNAME su un bucket Amazon.

+1

È importante che i siti di terze parti abbiano URL ininterrotti del sito perché ci sono un certo numero di siti che sono collegati al nostro sito, così come immagini reali incorporate nei loro siti (con il nostro permesso) che richiedono il immagine reale dal nostro server. Vogliamo mantenere questi collegamenti e impedire che queste immagini si rompano. Perché? Per essere premuroso, immagino. La risposta alla seconda domanda è che non abbiamo modo di sapere dove si trovano esattamente tutti questi URL esterni. Non sono soddisfatto della portata o dell'accuratezza della query "link:" di Google. –

0

Spostare i file e impostare un gestore 404 nella directory. Il gestore 404 può reindirizzare il client con uno stato 301 o 302 all'url S3 in modo trasparente. Gli altri consigli per utilizzare la riscrittura dell'URL probabilmente non funzioneranno con i file non aspx poiché ci si trova su un provider di hosting condiviso e in genere non supportano i mapping ASP.NET con caratteri jolly.