mirror of
https://github.com/samsonjs/arq_restore.git
synced 2026-04-27 15:07:44 +00:00
added ap-southeast-1 bucket region
This commit is contained in:
parent
faa8c0e2ad
commit
ac79ae41ec
4 changed files with 27 additions and 23 deletions
|
|
@ -42,8 +42,6 @@
|
||||||
|
|
||||||
@interface ArqRestoreCommand (internal)
|
@interface ArqRestoreCommand (internal)
|
||||||
- (BOOL)validateS3Keys:(NSError **)error;
|
- (BOOL)validateS3Keys:(NSError **)error;
|
||||||
- (NSArray *)s3BucketNames:(NSError **)error;
|
|
||||||
- (NSString *)s3BucketNameForRegion:(int)s3BucketRegion;
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation ArqRestoreCommand
|
@implementation ArqRestoreCommand
|
||||||
|
|
@ -80,10 +78,7 @@
|
||||||
if (![self validateS3Keys:error]) {
|
if (![self validateS3Keys:error]) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
NSArray *s3BucketNames = [self s3BucketNames:error];
|
NSArray *s3BucketNames = [S3Service s3BucketNamesForAccessKeyID:accessKey];
|
||||||
if (s3BucketNames == nil) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
NSMutableArray *computerUUIDPaths = [NSMutableArray array];
|
NSMutableArray *computerUUIDPaths = [NSMutableArray array];
|
||||||
for (NSString *s3BucketName in s3BucketNames) {
|
for (NSString *s3BucketName in s3BucketNames) {
|
||||||
NSString *computerUUIDPrefix = [NSString stringWithFormat:@"/%@/", s3BucketName];
|
NSString *computerUUIDPrefix = [NSString stringWithFormat:@"/%@/", s3BucketName];
|
||||||
|
|
@ -172,20 +167,4 @@
|
||||||
}
|
}
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
- (NSArray *)s3BucketNames:(NSError **)error {
|
|
||||||
return [NSArray arrayWithObjects:
|
|
||||||
[self s3BucketNameForRegion:BUCKET_REGION_US_STANDARD],
|
|
||||||
[self s3BucketNameForRegion:BUCKET_REGION_US_WEST],
|
|
||||||
[self s3BucketNameForRegion:BUCKET_REGION_EU],
|
|
||||||
nil];
|
|
||||||
}
|
|
||||||
- (NSString *)s3BucketNameForRegion:(int)s3BucketRegion {
|
|
||||||
NSString *regionSuffix = @"";
|
|
||||||
if (s3BucketRegion == BUCKET_REGION_US_WEST) {
|
|
||||||
regionSuffix = @".us-west-1";
|
|
||||||
} else if (s3BucketRegion == BUCKET_REGION_EU) {
|
|
||||||
regionSuffix = @".eu";
|
|
||||||
}
|
|
||||||
return [NSString stringWithFormat:@"%@.com.haystacksoftware.arq%@", [accessKey lowercaseString], regionSuffix];
|
|
||||||
}
|
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
#import "ArqFolder.h"
|
#import "ArqFolder.h"
|
||||||
|
|
||||||
static void printUsage(const char *exeName) {
|
static void printUsage(const char *exeName) {
|
||||||
|
fprintf(stderr, "Usage:\n");
|
||||||
fprintf(stderr, "\t%s\n", exeName);
|
fprintf(stderr, "\t%s\n", exeName);
|
||||||
fprintf(stderr, "\t%s /s3bucket/computerUUID/folderUUID\n", exeName);
|
fprintf(stderr, "\t%s /s3bucket/computerUUID/folderUUID\n", exeName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,8 @@
|
||||||
enum {
|
enum {
|
||||||
BUCKET_REGION_US_STANDARD = 0,
|
BUCKET_REGION_US_STANDARD = 0,
|
||||||
BUCKET_REGION_US_WEST = 1,
|
BUCKET_REGION_US_WEST = 1,
|
||||||
BUCKET_REGION_EU = 2
|
BUCKET_REGION_EU = 2,
|
||||||
|
BUCKET_REGION_AP_SOUTHEAST_1 = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
@interface S3Service : NSObject {
|
@interface S3Service : NSObject {
|
||||||
|
|
@ -50,6 +51,8 @@ enum {
|
||||||
+ (NSString *)errorDomain;
|
+ (NSString *)errorDomain;
|
||||||
+ (NSString *)serverErrorDomain;
|
+ (NSString *)serverErrorDomain;
|
||||||
+ (NSString *)displayNameForBucketRegion:(int)region;
|
+ (NSString *)displayNameForBucketRegion:(int)region;
|
||||||
|
+ (NSString *)s3BucketNameForAccessKeyID:(NSString *)theAccessKeyId region:(int)s3BucketRegion;
|
||||||
|
+ (NSArray *)s3BucketNamesForAccessKeyID:(NSString *)theAccessKeyId;
|
||||||
- (id)initWithS3AuthorizationProvider:(S3AuthorizationProvider *)theSAP useSSL:(BOOL)useSSL retryOnNetworkError:(BOOL)retry;
|
- (id)initWithS3AuthorizationProvider:(S3AuthorizationProvider *)theSAP useSSL:(BOOL)useSSL retryOnNetworkError:(BOOL)retry;
|
||||||
- (NSArray *)s3BucketNames:(NSError **)error;
|
- (NSArray *)s3BucketNames:(NSError **)error;
|
||||||
- (BOOL)s3BucketExists:(NSString *)s3BucketName;
|
- (BOOL)s3BucketExists:(NSString *)s3BucketName;
|
||||||
|
|
|
||||||
|
|
@ -69,12 +69,33 @@
|
||||||
return @"US Standard";
|
return @"US Standard";
|
||||||
case BUCKET_REGION_US_WEST:
|
case BUCKET_REGION_US_WEST:
|
||||||
return @"US West";
|
return @"US West";
|
||||||
|
case BUCKET_REGION_AP_SOUTHEAST_1:
|
||||||
|
return @"Asia Pacific (Singapore)";
|
||||||
case BUCKET_REGION_EU:
|
case BUCKET_REGION_EU:
|
||||||
return @"EU";
|
return @"EU";
|
||||||
}
|
}
|
||||||
NSAssert(NO, @"invalid S3 bucket region");
|
NSAssert(NO, @"invalid S3 bucket region");
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
+ (NSString *)s3BucketNameForAccessKeyID:(NSString *)theAccessKeyID region:(int)s3BucketRegion {
|
||||||
|
NSString *regionSuffix = @"";
|
||||||
|
if (s3BucketRegion == BUCKET_REGION_US_WEST) {
|
||||||
|
regionSuffix = @".us-west-1";
|
||||||
|
} else if (s3BucketRegion == BUCKET_REGION_AP_SOUTHEAST_1) {
|
||||||
|
regionSuffix = @".ap-southeast-1";
|
||||||
|
} else if (s3BucketRegion == BUCKET_REGION_EU) {
|
||||||
|
regionSuffix = @".eu";
|
||||||
|
}
|
||||||
|
return [NSString stringWithFormat:@"%@.com.haystacksoftware.arq%@", [theAccessKeyID lowercaseString], regionSuffix];
|
||||||
|
}
|
||||||
|
+ (NSArray *)s3BucketNamesForAccessKeyID:(NSString *)theAccessKeyId {
|
||||||
|
return [NSArray arrayWithObjects:
|
||||||
|
[S3Service s3BucketNameForAccessKeyID:theAccessKeyId region:BUCKET_REGION_US_STANDARD],
|
||||||
|
[S3Service s3BucketNameForAccessKeyID:theAccessKeyId region:BUCKET_REGION_US_WEST],
|
||||||
|
[S3Service s3BucketNameForAccessKeyID:theAccessKeyId region:BUCKET_REGION_EU],
|
||||||
|
[S3Service s3BucketNameForAccessKeyID:theAccessKeyId region:BUCKET_REGION_AP_SOUTHEAST_1],
|
||||||
|
nil];
|
||||||
|
}
|
||||||
- (id)initWithS3AuthorizationProvider:(S3AuthorizationProvider *)theSAP useSSL:(BOOL)isUseSSL retryOnNetworkError:(BOOL)retry {
|
- (id)initWithS3AuthorizationProvider:(S3AuthorizationProvider *)theSAP useSSL:(BOOL)isUseSSL retryOnNetworkError:(BOOL)retry {
|
||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
sap = [theSAP retain];
|
sap = [theSAP retain];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue