## Rosbag Cloud Recorders
This repository contains ROS nodes for recording rosbags and uploading them to Amazon S3.
There are three nodes under this repository: the `duration_recorder`, the `rolling_recorder`, and the `s3_file_uploader`. See the READMEs under the `rosbag_cloud_recorders` and `s3_uploader` directories for more details.
- `duration_recorder` - This node provides an action interface to record rosbags for a specified duration. Once that duration is complete the rosbag files are uploaded to S3.
- `rolling_recorder` - This node provides an action interface for uploading the past *x* minutes of rosbag files.
- `s3_file_uploader` - This node is in the `s3_file_uploader` package and provides an action interface for uploading a set of files to S3.
More details on the `duration_recorder` and `rolling_recorder` can be found in the `rosbag_cloud_recorders` README. More details on the `s3_file_uploader` can be found in the `s3_file_uploader` README.
**Amazon S3 Summary**: Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. This means customers of all sizes and industries can use it to store and protect any amount of data for a range of use cases, such as websites, mobile applications, backup and restore, archive, enterprise applications, IoT devices, and big data analytics. Amazon S3 provides easy-to-use management features so you can organize your data and configure finely-tuned access controls to meet your specific business, organizational, and compliance requirements. Amazon S3 is designed for 99.999999999% (11 9's) of durability, and stores data for millions of applications for companies all around the world.
### Build status
* GitHub Action Status
* master: 
* release-latest: 
[](https://github.com/aws-robotics/rosbag-uploader-ros1/actions)
## License
The source code is released under [Apache 2.0].
**Author**: AWS RoboMaker
**Affiliation**: [Amazon Web Services (AWS)]
**Maintainer**: AWS RoboMaker, ros-contributions@amazon.com
## Installation
### Building from Source
To build from source you'll need to create a new workspace, clone and checkout the `release-latest` branch of this repository, install all the dependencies, and compile. If you need the latest development features you can clone from the `master` branch instead of the latest release branch. While we guarantee the release branches are stable, __the `master` should be considered to have an unstable build__ due to ongoing development.
- Install build tool: please refer to `colcon` [installation guide](https://colcon.readthedocs.io/en/released/user/installation.html)
- Create a ROS workspace and a source directory
mkdir -p ~/ros-workspace/src
- Clone the package into the source directory .
cd ~/ros-workspace/src
git clone https://github.com/aws-robotics/rosbag-uploader-ros1.git
- Install dependencies
cd ~/ros-workspace
sudo apt-get update && rosdep update
rosdep install --from-paths src --ignore-src -r -y
_Note: If building the master branch instead of a release branch you may need to also checkout and build the master branches of the packages this package depends on._
- Build the packages
cd ~/ros-workspace && colcon build
- Configure ROS library Path
source ~/ros-workspace/install/setup.bash
### Running Tests
- Build with
colcon build --cmake-targets tests
- Then run tests
colcon test
colcon test-result --all
### Running
Instructions for running the nodes in this repository can be found in the READMEs for `rosbag_cloud_recorders` and `s3_file_uploader` packages.
## Bugs & Feature Requests
Please contact the team directly if you would like to request a feature.
Please report bugs in [Issue Tracker].
[Amazon Web Services (AWS)]: https://aws.amazon.com/
[Apache 2.0]: https://aws.amazon.com/apache-2-0/
[Issue Tracker]: https://github.com/aws-robotics/rosbag-uploader-ros1/issues
[ROS]: http://www.ros.org