我寫了一個Python腳本,它以特定的時間間隔對我的電腦進行截圖,並將截圖發送到我的S3存儲桶。當我使用python命令運行我的腳本時,它可以工作,但是當我使用pythonw.exe命令將此腳本作爲後臺任務運行時,屏幕截圖捕獲操作可以正常工作 - 但是沒有任何內容上傳到S3。pythonw.exe無法將文件上傳到亞馬遜S3
這裏是我的代碼:
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()
如果您沒有配置您的AWS憑據,安裝AWS-CLI並運行以下命令:
aws configure
非常感謝,它工作。 – Reza