def test_bucket_acl(self): print(self.bucket_name) self.client.get_bucket_acl(self.bucket_name) bucketAcl = AccessControlList() bucketAcl.add_grant(Grant(Grantee("111"), Permission.READ)) bucketAcl.add_grant(Grant(Grantee('109901'), Permission.FULL_CONTROL)) bucketAcl.add_grant(Grant(Grantee('123456'), Permission.SSO_WRITE)) bucketAcl.add_grant(Grant(Grantee(appid), Permission.FULL_CONTROL)) self.client.set_bucket_acl(self.bucket_name, bucketAcl) aclListGot = self.client.get_bucket_acl(self.bucket_name) readAclCnt = 0 fullControlCnt = 0 writeWithSSOCnt = 0 for i in aclListGot.get_grant_list(): if i['grantee']['id'] == '111': self.assertTrue(i['permission'].to_string() == Permission( Permission.READ).to_string()) readAclCnt += 1 elif i['grantee']['id'] == '109901': self.assertTrue(i['permission'].to_string() == Permission( Permission.FULL_CONTROL).to_string()) fullControlCnt += 1 elif i['grantee']['id'] == '123456': self.assertTrue(i['permission'].to_string() == Permission( Permission.SSO_WRITE).to_string()) writeWithSSOCnt += 1 self.assertTrue(readAclCnt == 1) self.assertTrue(fullControlCnt == 1) self.assertTrue(writeWithSSOCnt == 1) # self.client.set_bucket_acl(self.bucket_name, bucketAcl) acl = self.client.get_bucket_acl(self.bucket_name) self.assertTrue(bucketAcl.is_subset(acl)) acl_client = GalaxyFDSClient( acl_ak, acl_access_secret, FDSClientConfiguration(region_name, False, False, False, endpoint=endpoint)) object_name = "testBucketAcl7" acl_client.put_object(self.bucket_name, object_name, "hahhah") self.assertTrue( self.client.does_object_exists(self.bucket_name, object_name)) acl_client.list_objects(self.bucket_name) acl_client.delete_object(self.bucket_name, object_name) self.assertFalse( self.client.does_object_exists(self.bucket_name, object_name)) self.assertTrue(acl_client.does_bucket_exist(self.bucket_name)) try: acl_client.delete_bucket(self.bucket_name) except GalaxyFDSClientException as e: print(e.message) self.assertTrue(self.client.does_bucket_exist(self.bucket_name))
def test_bucket_acl(self): print(self.bucket_name) self.client.get_bucket_acl(self.bucket_name) bucketAcl = AccessControlList() bucketAcl.add_grant(Grant(Grantee("111"), Permission.READ)) bucketAcl.add_grant(Grant(Grantee('109901'), Permission.FULL_CONTROL)) bucketAcl.add_grant(Grant(Grantee('123456'), Permission.SSO_WRITE)) bucketAcl.add_grant(Grant(Grantee(app_id), Permission.FULL_CONTROL)) self.client.set_bucket_acl(self.bucket_name, bucketAcl) aclListGot = self.client.get_bucket_acl(self.bucket_name) readAclCnt = 0 fullControlCnt = 0 writeWithSSOCnt = 0 for i in aclListGot.get_grant_list(): if i['grantee']['id'] == '111': self.assertTrue(i['permission'].to_string() == Permission(Permission.READ).to_string()) readAclCnt += 1 elif i['grantee']['id'] == '109901': self.assertTrue( i['permission'].to_string() == Permission(Permission.FULL_CONTROL).to_string()) fullControlCnt += 1 elif i['grantee']['id'] == '123456': self.assertTrue(i['permission'].to_string() == Permission(Permission.SSO_WRITE).to_string()) writeWithSSOCnt += 1 self.assertTrue(readAclCnt == 1) self.assertTrue(fullControlCnt == 1) self.assertTrue(writeWithSSOCnt == 1) # self.client.set_bucket_acl(self.bucket_name, bucketAcl) acl = self.client.get_bucket_acl(self.bucket_name) self.assertTrue(bucketAcl.is_subset(acl)) acl_client = GalaxyFDSClient(acl_ak, acl_access_secret, FDSClientConfiguration(region_name, False, False, False, endpoint=endpoint)) object_name = "testBucketAcl7" acl_client.put_object(self.bucket_name, object_name, "hahhah") self.assertTrue( self.client.does_object_exists(self.bucket_name, object_name)) acl_client.list_objects(self.bucket_name) acl_client.delete_object(self.bucket_name, object_name) self.assertFalse( self.client.does_object_exists(self.bucket_name, object_name)) self.assertTrue(acl_client.does_bucket_exist(self.bucket_name))
# Get the object content obj = fds_client.get_object(bucket_name, object_name) for chunk in obj.stream: sys.stdout.write(chunk) print('\n') # Download the object file data_file = "/tmp/fds_file" fds_client.download(bucket_name, object_name, data_file) data_file2 = "/tmp/fds_file2" fds_client.download_object_with_uri("fds://" + bucket_name + "/" + object_name, data_file2) # Delete the object fds_client.delete_object(bucket_name, object_name) ##################### ##################### # Put a file object object_name = 'fds_client_example.py' object_content = open(object_name, 'r') fds_client.put_object(bucket_name, object_name, object_content) object_content.close() # Generate a pre-signed url try: import urllib2 except ImportError: import urllib.request as urllib2
from fds.fds_client_configuration import FDSClientConfiguration from fds.galaxy_fds_client import GalaxyFDSClient from fds.galaxy_fds_client_exception import GalaxyFDSClientException from fds.model.permission import AccessControlList from fds.model.permission import Grant from fds.model.permission import Grantee from fds.model.permission import Permission # Create default client access_key = 'none' access_secret = 'none' config = FDSClientConfiguration() bucket_name = 'fds-python-example-%d' % int(time.time()) fds_client = GalaxyFDSClient(access_key, access_secret, config) ##################### # List buckets and delete them all !!!!!! buckets = fds_client.list_buckets() print('buckets list:') for bucket in buckets: result = fds_client.list_objects(bucket) if result.is_truncated: while result.is_truncated: result = fds_client.list_next_batch_of_objects(result) for object_summary in result.objects: fds_client.delete_object(bucket, object_summary.object_name) else: for object_summary in result.objects: fds_client.delete_object(bucket, object_summary.object_name) fds_client.delete_bucket(bucket)
fds_client.put_object(bucket_name, object_name, object_content) # Get the object content obj = fds_client.get_object(bucket_name, object_name) for chunk in obj.stream: sys.stdout.write(chunk) print '\n' # Download the object file data_file = "/tmp/fds_file" client.download(bucket_name, object_name, data_file) data_file2 = "/tmp/fds_file2" client.download_object_with_uri("fds://" + bucket_name + "/" + object_name, data_file2) # Delete the object fds_client.delete_object(bucket_name, object_name) ##################### ##################### # Put a file object object_name = 'fds_client_example.py' object_content = open(object_name, 'r') fds_client.put_object(bucket_name, object_name, object_content) object_content.close() # Generate a pre-signed url import urllib2 url = fds_client.generate_presigned_uri(None, bucket_name, object_name, time.time() * 1000 + 60000) # Get the object content