blob: 129b7e25230ae9e9e17abce81eac2395b665fcb4 [file] [log] [blame]
Alexei Strots0cb11342023-05-03 15:51:18 -07001#include "aos/events/logging/s3_file_operations.h"
Alexei Strots1bf05be2023-04-21 11:07:37 -07002
3#include "aos/events/logging/s3_fetcher.h"
4
5namespace aos::logger::internal {
6
Austin Schuh95460cc2023-06-26 11:53:10 -07007std::vector<FileOperations::File> Convert(
8 std::vector<std::pair<std::string, size_t>> &&input) {
9 std::vector<FileOperations::File> result;
10 result.reserve(input.size());
11 for (std::pair<std::string, size_t> &i : input) {
12 result.emplace_back(FileOperations::File{
13 .name = std::move(i.first),
14 .size = i.second,
15 });
16 }
17 return result;
18}
Alexei Strots1bf05be2023-04-21 11:07:37 -070019
Austin Schuh95460cc2023-06-26 11:53:10 -070020S3FileOperations::S3FileOperations(std::string_view url)
21 : object_urls_(Convert(ListS3Objects(url))) {}
22
23void S3FileOperations::FindLogs(std::vector<File> *files) {
Alexei Strots1bf05be2023-04-21 11:07:37 -070024 // We already have a recursive listing, so just grab all the objects from
25 // there.
Austin Schuh95460cc2023-06-26 11:53:10 -070026 for (const File &object_url : object_urls_) {
27 if (IsValidFilename(object_url.name)) {
Alexei Strots1bf05be2023-04-21 11:07:37 -070028 files->push_back(object_url);
29 }
30 }
31}
32
Austin Schuh95460cc2023-06-26 11:53:10 -070033} // namespace aos::logger::internal