internal static string FindLatestDbVersion(S3Token token, RestClient rest) { // TODO: Sort out binary/text Get var info = GetS3Object("1/spc.info", token, "the database info", rest).ToUtf8(); var re = new Regex(@"VERSION\s+(\d+)"); var m = re.Match(info); if (!m.Success) { throw new InternalErrorException("Invalid database info format"); } return(m.Groups[1].Value); }
private static byte[] GetS3Object(string filename, S3Token token, string name, RestClient rest) { return(S3.GetObject(token.BucketName, token.ObjectPrefix + filename, token.Credentials, rest)); }
internal static byte[] DownloadDb(string version, S3Token token, RestClient rest) { var db = GetS3Object($"1/db_{version}.dmp", token, "the database", rest); return(Inflate(db, "the database")); }
internal static byte[] DownloadLatestDb(S3Token token, RestClient rest) { var version = FindLatestDbVersion(token, rest); return(DownloadDb(version, token, rest)); }
// This functions finds out what the latest version of the database is and downloads // it from S3. internal static byte[] DownloadLatestDb(S3Token token, IRestTransport transport) { return(DownloadLatestDb(token, new RestClient(transport))); }