Archiviazione file cloud flessibile per un'app web.py?

1

Sto creando un'app web usando web.py (anche se in seguito potrei riscriverlo per Tornado) che comporta molte manipolazioni di file. Un esempio, l'applicazione avrà un'operazione di "commit" in stile git, in cui alcuni file vengono inviati al server e inseriti in una nuova cartella insieme ai file non modificati dell'ultima versione. Ciò comporterà la copia della vecchia cartella nella nuova cartella, la sostituzione / aggiunta / eliminazione dei file nel commit nella nuova cartella, quindi l'eliminazione di tutti i file non modificati nella vecchia cartella (come sono ora nella nuova cartella).

Ho deciso su Heroku per l'ambiente di hosting di app, e attualmente sto esaminando le opzioni di archiviazione su cloud create pensando a questo tipo di operazioni. Stavo pensando ad Amazon S3, tuttavia non sono sicuro che questo ti permetta di eseguire questo tipo di operazioni sui file sul posto. Stavo pensando che potrei dover caricare questi file nella RAM del server e poi reinserirli nel secchio, mi costa una fortuna. Stavo anche pensando a Progstr Filer (http://filer.progstr.com/index.html) ma sembra integrarsi solo con le app Rails.

Qualcuno può aiutarti? Fondamentalmente voglio che le operazioni sui file siano quanto più economiche possibile.

    
posta benwad 08.05.2012 - 22:01
fonte

1 risposta

1

Non vedo differenze o confronti tra i file, quindi non è necessario copiarli o caricarli nella RAM.

Il mio suggerimento è: trattare i file individualmente. E se vuoi che sia davvero flessibile, considera la possibilità di archiviarlo in un database. Se ciò non è fattibile, almeno scrivi solo il file modificato nel tuo archivio. Memorizza dov'è la versione più recente (e le precedenti versioni) di quel singolo file (non la cartella) nel tuo database.

Immagina di modificare un file in una cartella contenente file 2k. Basta scrivere il nuovo file da qualche parte (o anche meglio, la maggior parte dei file sono di testo e puoi semplicemente scrivere il delta), non toccare l'intera cartella.

    
risposta data 13.08.2012 - 10:50
fonte