I have written a report to copy files to an AWS S3 bucket, separate thread
on that, but now an trying to incorporate it into my deployment.
The easy way, and the way I have done it so far is to modify
reportengine.py, but there must be a better way
#
=============================================================================
# Class AWS_Sync
#
=============================================================================
class AWS_Sync(ReportGenerator):
"""Class for managing the "AWS generator".
This will copy everything in the public_html subdirectory to a
webserver."""
def run(self):
import weeutil.s3upload
# determine how much logging is desired
log_success = to_bool(search_up(self.skin_dict, 'log_success',
True))
t1 = time.time()
try:
local_root = os.path.join(self.config_dict['WEEWX_ROOT'],
self.skin_dict.get('HTML_ROOT',
self.config_dict['StdReport']['HTML_ROOT']))
s3_data = weeutil.s3upload.S3Upload(
bucket=self.skin_dict['bucket'],
profile=self.skin_dict['profile'],
local_root=local_root,
remote_root=self.skin_dict['S3_ROOT'],
name=self.skin_dict['REPORT_NAME'],
debug=int(self.skin_dict.get('debug', 0)),
secure_data=to_bool(self.skin_dict.get('secure_data',
True)))
except KeyError:
syslog.syslog(syslog.LOG_DEBUG,
"AWS_Sync: AWS upload not requested. Skipped.")
return
try:
n = s3_data.run()
except (socket.timeout, socket.gaierror, ftplib.all_errors,
IOError) as e:
(cl, unused_ob, unused_tr) = sys.exc_info()
syslog.syslog(syslog.LOG_ERR, "AWS_Sync: "
"Caught exception %s: %s" % (cl,
e))
weeutil.weeutil.log_traceback(" **** ")
return
if log_success:
t2 = time.time()
syslog.syslog(syslog.LOG_INFO,
"AWS_Sync: awscli S3'd %d files in %0.2f seconds"
%
(n, (t2 - t1)))
Thoughts
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/78c88189-2052-4870-b078-3a40d68af8cd%40googlegroups.com.