Попытка загрузить фотографии с Raspberry Pi на AWS S3, но обнаружила пару ошибок.Программа будет зависать при загрузке изображения в AWS.
Попытка переместить его в отдельный скрипт, вызвать его в программе и поместить в качестве начальной строки программы.Каждый из них приводил к зависанию программы при загрузке.Когда скрипт запускается сам по себе, он будет работать.
import ssl
import time
import json
import gpiozero
import boto3
import picamera
import pic
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTShadowClient
def main():
pic.capture('pi.png')
myShadowClient = AWSIoTMQTTShadowClient(CLIENT ID)
myShadowClient.configureEndpoint(ENDPOINT, PORT NUMBER)
myShadowClient.configureCredentials(ROOT CA,/PRIVATE KEY ,CERTIFICATION)
myDeviceShadow = myShadowClient.createShadowHandlerWithName("ThingName", True)
myShadowClient.configureConnectDisconnectTimeout(10) # 10 sec
myShadowClient.configureMQTTOperationTimeout(5) # 5 sec
myShadowClient.connect(1200) #Print this out on
#s3.upload_file('pipic.png',bucket_name,'pipic.png')
#s3.upload_file('test5.png',bucket_name,'test5.png')
while True:
myDeviceShadow.shadowGet(customShadowCallback_Update, 5)
time.sleep(5)
pic.py
import picamera
import boto3
camera = picamera.PiCamera()
def capture(filename):
camera.capture(filename)
s3 = boto3.client(CLIENTID, ACCESS KEY ID, SECRET ACCESS KEY)
bucket_name = ''
for y in range(20):
print("before capture")
capture(str(y)+'pi.png')
s3.upload_file(str(y)+'pi.png',bucket_name, str(y)+'pi.png')
print("after upload")
camera.close()
Ожидайте, что изображение будет загружено и будет напечатан оператор "after upload",Пока печатается только оператор «перед захватом», и тогда программа будет зависать при попытке выполнить