Ecco alcuni esempi di codice di copia di una chiave S3. Ci sono molte ragioni per cui potresti voler fare questo, una delle quali è aggiornare i metadati chiave. E mentre questa sembra essere la soluzione ampiamente accettata per questo, c'è un grosso problema. Il problema è quando faccio l'esempio qui sotto, in realtà perdo il mio Content-Type, che di default torna a 'application/octet-stream' (non molto utile se provi a pubblicare immagini web).boto.s3: copy() su un oggetto chiave perde i metadati "Content-Type"
# Get bucket
conn = S3Connection(self._aws_key, self._aws_secret)
bucket = conn.get_bucket(self._aws_bucket)
# Create key
k = Key(bucket)
k.key = key
# Copy old key
k.metadata.update({ meta_key: meta_value })
k2 = k.copy(k.bucket.name, k.name, k.metadata, preserve_acl=True)
k = k2
Qualche idea? Grazie.
'copy' restituisce solo un copia superficiale di un oggetto. Prova a usare 'deepcopy'. –
@Joel: boto non fornisce deepcopy. –