Comment définissez-vous le type de contenu sur un fichier dans un compte S3 compatible WebHosting via le module Python Boto?
Je fais: p>
from boto.s3.connection import S3Connection from boto.s3.key import Key from boto.cloudfront import CloudFrontConnection conn = S3Connection(access_key_id, secret_access_key) bucket = conn.create_bucket('mybucket') b = conn.get_bucket(bucket) b.set_acl('public-read') fn = 'index.html' template = '<html>blah</html>' k = Key(b) k.key = fn k.set_contents_from_string(template) k.set_acl('public-read') k.set_metadata('Content-Type', 'text/html')
4 Réponses :
La méthode Notez que vous pouvez définir des stratégies ACL en conserve au moment où vous écrivez l'objet à S3 qui enregistre avoir à créer un autre appel d'API. P> P> P> > set_metadata code> est vraiment destinée à définir les métadonnées utilisateur sur les objets S3. Beaucoup de champs de métadonnées HTTP standard ont des attributs de première classe à les représenter, par exemple.
content_type code>. De plus, vous souhaitez définir les métadonnées avant d'envoyer l'objet à S3. Quelque chose comme ça devrait fonctionner:
Je n'ai pas été capable d'obtenir la solution ci-dessus pour persister mes changements de métadonnées.
Peut-être parce que j'utilisais un fichier et j'étais réinitialisé le type de contenu à l'aide de MimeType? Je télécharge également des fichiers M3U8 et TS pour le codage HLS afin de pouvoir interférer également. P>
Quoi qu'il en soit, voici ce qui a fonctionné pour moi. p>
Qu'est-ce que godet_handle code>?
C'est juste la chaîne contenant le nom du godet en S3
Pour les personnes qui ont besoin d'une doublure pour cela,
'private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control'
Si vous utilisez AWS S3 BitBucket Pipelines Python Ajouter le paramètre content_type em> strud>: puis modifier bitbucket -pipelines.yml strong> comme suit: p> où content_type fort> param peut être l'une des suivantes: Types MIME (types de média IANA) P> P>
Je ne suis pas complètement certain, mais si je me souviens bien, l'ordre i> de vos opérations est significatif. Essayez de réorganiser vos opérations de clé - Définissez les métadonnées code> Type de contenu Code> avant de définir le contenu, par exemple.