in a2d2/src/rosbag_producer.py [0:0]
def __close_bag(self, s3_client=None):
if self.bag:
self.bag.close()
resp_topic = self.request['response_topic']
if self.accept.startswith("s3/"):
if s3_client == None:
s3_client = get_s3_client()
prefix = self.rosbag_prefix + resp_topic + "/"
key = prefix + self.bag_name
json_msg = { "output": "s3", "bag_bucket": self.rosbag_bucket,
"bag_prefix": prefix,
"bag_name": self.bag_name, "multipart": self.multipart}
with open(self.bag_path, 'rb') as data:
s3_client.upload_fileobj(data, self.rosbag_bucket, key)
data.close()
os.remove(self.bag_path)
elif self.accept.startswith("fsx/"):
json_msg = { "output": "fsx", "bag_path": self.bag_path ,
"multipart": self.multipart}
elif self.accept.startswith("efs/"):
json_msg = { "output": "efs", "bag_path": self.bag_path ,
"multipart": self.multipart}
self.producer.send(resp_topic, json.dumps(json_msg).encode('utf-8'))
self.bag = None
self.bag_path = None