Skip to content

Commit

Permalink
#51 tentative support for cn-north-1
Browse files Browse the repository at this point in the history
  • Loading branch information
mbrossard committed Feb 1, 2017
1 parent c29061a commit 8cea8b1
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
8 changes: 8 additions & 0 deletions s3iam.py
Expand Up @@ -82,6 +82,11 @@ def parse_url(url):
if m:
return (m.group(2), 'us-east-1', m.group(3))

# http[s]://s3.cn-north-1.amazonaws.com.cn/<bucket>
m = re.match(r'(http|https|s3)://s3[.]cn-north-1[.]amazonaws[.]com[.]cn/([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])(.*)$', url)
if m:
return (m.group(2), 'cn-north-1', m.group(3))

# http[s]://s3-<region>.amazonaws.com/<bucket>
m = re.match(r'(http|https|s3)://s3-([a-z0-9-]+)[.]amazonaws[.]com/([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])(.*)$', url)
if m:
Expand Down Expand Up @@ -128,6 +133,9 @@ def __init__(self, repoid, repo):
else:
self.baseurl = "https://%s.s3.amazonaws.com%s" % (bucket, path)

if 'cn-north-1' in region:
self.baseurl = "https://s3.cn-north-1.amazonaws.com.cn/%s%s" % (bucket, path)

self.name = repo.name
self.region = repo.region if repo.region else region
self.basecachedir = repo.basecachedir
Expand Down
5 changes: 5 additions & 0 deletions tests.py
Expand Up @@ -162,5 +162,10 @@ def test_urls(self):
self.assertEqual(r, 'us-west-1')
self.assertEqual(p, '/path')

(b, r, p) = s3iam.parse_url('https://s3.cn-north-1.amazonaws.com.cn/bar/path')
self.assertEqual(b, 'bar')
self.assertEqual(r, 'cn-north-1')
self.assertEqual(p, '/path')

if __name__ == '__main__':
unittest.main()

0 comments on commit 8cea8b1

Please sign in to comment.