J'ai écrit un script Python qui prend une capture d'écran de mon PC à un certain intervalle et envoie cette capture d'écran à mon seau S3. Lorsque j'exécute mon script avec la commande python, cela fonctionne, mais lorsque j'exécute ce script en tâche de fond avec la commande pythonw.exe, l'opération de capture d'écran fonctionne - mais rien ne se télécharge sur S3.pythonw.exe ne peut pas télécharger de fichier sur Amazon S3
Voici mon code:
import os
import sys
import time
import Image
import ImageGrab
import getpass
import boto3
import threading
from random import randint
s3 = boto3.resource('s3')
username = getpass.getuser()
#---------------------------------------------------------
#User Settings:
SaveDirectory=r'C:\Users\Md.Rezaur\Dropbox\Screepy_App\screenshot'
ImageEditorPath=r'C:\WINDOWS\system32\mspaint.exe'
def capture_and_send():
interval = randint(10,30)
threading.Timer(interval, capture_and_send).start()
img=ImageGrab.grab()
saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d_%H_%M_%S')+'.jpg')
fname = 'ScreenShot_'+time.strftime('%Y_%m_%d_%H_%M_%S')+'.jpg'
img.save(saveas, quality=50, optimize=True)
editorstring='""%s" "%s"'% (ImageEditorPath,saveas)
data = open(fname, 'rb')
s3.Bucket('screepy').put_object(Key=username+'/'+fname, Body=data)
capture_and_send()
Si vous n'avez pas configuré vos informations d'identification de SSFE, installez le aws-cli et exécutez la commande suivante:
aws configure
Merci beaucoup, cela a fonctionné. – Reza