2012-11-19 11 views
8

Attualmente sto lavorando con Amazon S3.C'è un modo per toccare() file in Amazon S3?

Sto scrivendo un programma che controlla le date modificate.

Quello che mi serve è una soluzione per modificare le date modificate.

È possibile eseguire il ciclo su tutti i file e salvarli così come sono, ma sembra una cattiva soluzione.

In PHP c'è questa fantastica funzione touch().

Qualcuno conosce una soluzione o ha lo stesso problema? Per favore mi faccia sapere.

risposta

5

È possibile ottenere lo stesso tramite una richiesta copy object, specificando che CopySource è uguale alla chiave di destinazione.

In pratica, questo invierà una richiesta PUT Object - COPY a S3 con il corrispondente bucket/chiave di origine e destinazione.

+0

E sai cosa fa esattamente questo? Pubblica una richiesta GET e PUT per ogni file? –

+0

Modificato la mia risposta per includere queste informazioni. – tkotisis

+0

Perfetto. Grazie! –

13

In risposta al commento di @Daniel Golden sulla risposta @tkotisis. Sembra che almeno gli strumenti della CLI di AWS non ti consentano di copiare un oggetto su se stesso. È tuttavia possibile "forzare" una copia aggiornando i metadati.

$ aws s3 cp --metadata '{"touched":"now"}' s3://path/to/object s3://path/to/object 

Questo ricrea l'oggetto (download al chiamante e reuploads esso) sostituendo il suo contenuto, proprietario e metadati. Ciò attiverà anche eventuali eventi Lambda collegati.