2016-04-18 5 views
0

Ich habe ein Skript, das einen s3cmd-Upload nach einem Zeitplan ausführt. Ich habe noch keine Fehler im Upload-Prozess, aber ich gehe davon aus, dass ich irgendwann in der Zukunft darauf stoße und möchte eine SNS-Benachrichtigung senden, wenn dies jemals passiert. Ich weiß, wie ich die Benachrichtigung mit dem Boto3 AWS SDK senden kann, aber mein Problem ist, zu wissen, wann ich es senden soll.Automatisiertes Backup-Skript über s3cmd und Python - Fehlerbehandlung?

Das Skript ist in Python geschrieben und sendet BASH Befehle für den s3cmd Upload mit dem subprocess Modul:

>> subprocess.check_output(['bash', '-c', "s3cmd put /path/to/file s3://bucket-name"]) 

Ich möchte nur eine Form der Anzeige, wenn Fehler auftreten. Was ist der beste Ansatz dafür?

Antwort

1

Sie sollten das Python SDK von aws verwenden, um dies zu erreichen: boto3. Fügen Sie dann einfach einen try/catch-Block hinzu, um ihn auf einem SNS zu veröffentlichen.

with open('test.jpg', 'rb') as data: 
    s3.Bucket('my-bucket').put_object(Key='test.jpg', Body=data)