Essaye ça...
import boto
import boto.s3
import sys
from boto.s3.key import Key
AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
bucket_name = AWS_ACCESS_KEY_ID.lower() + '-dump'
conn = boto.connect_s3(AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY)
bucket = conn.create_bucket(bucket_name,
location=boto.s3.connection.Location.DEFAULT)
testfile = "replace this with an actual filename"
print 'Uploading %s to Amazon S3 bucket %s' % \
(testfile, bucket_name)
def percent_cb(complete, total):
sys.stdout.write('.')
sys.stdout.flush()
k = Key(bucket)
k.key = 'my test file'
k.set_contents_from_filename(testfile,
cb=percent_cb, num_cb=10)
[MISE À JOUR] Je ne suis pas un pythoniste, donc merci pour les informations concernant les instructions d'importation. De plus, je ne recommanderais pas de placer les informations d'identification dans votre propre code source. Si vous l'exécutez dans AWS, utilisez les informations d'identification IAM avec des profils d'instance ( http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html ) et pour conserver le même comportement dans votre environnement de développement / test, utilisez quelque chose comme Hologram d'AdRoll ( https://github.com/AdRoll/hologram )
Pas besoin de compliquer les choses:
la source
key.set_contents_from_filename('some_file.zip')
fonctionnerait également ici. Voir doc . Le code correspondant pour boto3 peut être trouvé ici .la source
aws configure
, entrez vos informations et vous vous connecterez automatiquement avec boto3. Vérifiez boto3.readthedocs.io/en/latest/guide/quickstart.htmlaws configure
avance pour vous faciliter la vie.J'ai utilisé ceci et c'est très simple à mettre en œuvre
https://www.smore.com/labs/tinys3/
la source
boto3.client
solution simple (comme la réponse de Manish Mehra) a cependant fonctionné immédiatement.la source
aws_access_key_id
etaws_secret_access_key
peut également être configuré avec l'AWS CLI et stocké hors du script afin que `client = boto3.client ('s3') puisse être appeléTéléchargez le fichier vers s3 dans une session avec des informations d'identification.
la source
Cela fonctionnera également:
la source
Ceci est un trois lignes. Suivez simplement les instructions de la documentation boto3 .
Certains arguments importants sont:
Paramètres:
str
) - Le chemin d'accès au fichier à télécharger.str
) - Le nom du compartiment vers lequel effectuer le téléchargement.str
) - Le nom du que vous souhaitez attribuer à votre fichier dans votre compartiment s3. Cela peut être le même que le nom du fichier ou un nom différent de votre choix, mais le type de fichier doit rester le même.Remarque: je suppose que vous avez enregistré vos informations d'identification dans un
~\.aws
dossier comme suggéré dans les meilleures pratiques de configuration dans la documentation de boto3 .la source
la source
Utilisation de boto3
Pour en savoir plus: - https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-uploading-files.html
la source
Pour l'exemple de dossier de téléchargement comme le code suivant et l'image du dossier S3
PS: Pour plus d' URL de référence
la source
la source
J'ai quelque chose qui me semble avoir un peu plus d'ordre:
Il y a trois variables importantes ici, le BUCKET const, le file_to_upload et le file_name
BUCKET
: est le nom de votre compartiment S3file_to_upload_path
: doit être le chemin du fichier que vous souhaitez téléchargerfile_name
: est le fichier résultant et le chemin dans votre compartiment (c'est là que vous ajoutez des dossiers ou quoi que ce soit)Il existe de nombreuses façons, mais vous pouvez réutiliser ce code dans un autre script comme celui-ci
la source