def test_update_file_meta(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) content = u'this is a file content text!!' scs.put(self.object_key, content) canned_acl = 'public-read-write' #快捷ACL metadata = {} #自定义文件属性信息 metadata['author'] = 'dage' metadata['home'] = 'tianjin' metadata['age'] = '18' mimetype = 'text/plain' scs.update_meta(self.object_key, metadata=metadata, acl=canned_acl, mimetype=mimetype) file_info = scs.info(self.object_key) #assert metadata self.assertEqual(metadata['author'], file_info['metadata']['author'], 'The response metadata[\'author\'] is not match') self.assertEqual(metadata['home'], file_info['metadata']['home'], 'The response metadata[\'home\'] is not match') self.assertEqual(metadata['age'], file_info['metadata']['age'], 'The response metadata[\'age\'] is not match') #assert content-type # print file_info['headers'] #TODO:服务器问题 self.assertEqual(mimetype, file_info['headers']['content-type'], 'The response content-type is not match') #acl file_aclInfo = scs.acl_info(self.object_key) self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in file_aclInfo['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t write right')
def test_update_file_acl(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) content = u'this is a file content text!!' canned_acl = 'private' #快捷ACL scs.put(key=self.object_key, data=content, acl=canned_acl) #设置ACL acl = {} acl[ACL.ACL_GROUP_ANONYMOUSE] = [ACL.ACL_READ, ACL.ACL_WRITE, ACL.ACL_READ_ACP] acl[ACL.ACL_GROUP_CANONICAL] = [ACL.ACL_READ_ACP,ACL.ACL_WRITE_ACP, ACL.ACL_READ] user_id = 'SINA0000001001AABBCC' acl[user_id] = [ACL.ACL_WRITE, ACL.ACL_READ] scs.update_acl(self.object_key, acl) #assert file_aclInfo = scs.acl_info(self.object_key) #ACL_GROUP_ANONYMOUSE self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in file_aclInfo['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t write right') self.assertTrue(ACL.ACL_READ_ACP in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read_acp right') #ACL_GROUP_CANONICAL self.assertTrue(ACL.ACL_GROUP_CANONICAL in file_aclInfo['ACL'], 'The acl dose not contains GRPS0000000CANONICAL group') self.assertTrue(ACL.ACL_READ in file_aclInfo['ACL'][ACL.ACL_GROUP_CANONICAL], 'The acl GRPS0000000CANONICAL group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE_ACP in file_aclInfo['ACL'][ACL.ACL_GROUP_CANONICAL], 'The acl GRPS0000000CANONICAL group hasn\'t write_acp right') self.assertTrue(ACL.ACL_READ_ACP in file_aclInfo['ACL'][ACL.ACL_GROUP_CANONICAL], 'The acl GRPS0000000CANONICAL group hasn\'t read_acp right') #user_id self.assertTrue(user_id in file_aclInfo['ACL'], 'The acl dose not contains user_id group') self.assertTrue(ACL.ACL_READ in file_aclInfo['ACL'][user_id], 'The acl user_id group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in file_aclInfo['ACL'][user_id], 'The acl user_id group hasn\'t write right')
def test_copy_file(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) scs.putFile(self.object_key, self.local_file_name) canned_acl = 'public-read' #快捷ACL metadata = {} #自定义文件属性信息 metadata['author'] = 'copied' metadata['home'] = 'beijing' metadata['age'] = '189' mimetype = 'text/plain' scs.copy(source='/'+self.bucket_name+'/'+self.object_key, key=self.object_key+'_copied', acl=canned_acl, metadata=metadata, mimetype=mimetype) copied_file_aclInfo = scs.acl_info(self.object_key+'_copied') self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in copied_file_aclInfo['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in copied_file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') copied_file_info = scs.info(self.object_key+'_copied') #assert metadata self.assertEqual(metadata['author'], copied_file_info['metadata']['author'], 'The response metadata[\'author\'] is not match') self.assertEqual(metadata['home'], copied_file_info['metadata']['home'], 'The response metadata[\'home\'] is not match') self.assertEqual(metadata['age'], copied_file_info['metadata']['age'], 'The response metadata[\'age\'] is not match') #assert content-type self.assertEqual(mimetype, copied_file_info['headers']['content-type'], 'The response content-type is not match')
def test_put_file_relax(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) scs.put(self.object_key, 'fileContent...fileContent...fileContent...fileContent...fileContent...') orign_file_metaResult = scs.meta(self.object_key) canned_acl = 'public-read-write' #快捷ACL metadata = {} #自定义文件属性信息 metadata['author'] = 'dage' metadata['home'] = 'tianjin' metadata['age'] = '18' mimetype = 'text/plain' scs.put_relax(key=self.object_key+'_relax', sina_sha1=orign_file_metaResult['Content-SHA1'], s_sina_length=orign_file_metaResult['Size'], acl=canned_acl, metadata=metadata, mimetype=mimetype) relax_file_aclInfo = scs.acl_info(self.object_key+'_relax') self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in relax_file_aclInfo['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in relax_file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in relax_file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t write right') relax_file_info = scs.info(self.object_key+'_relax') #assert metadata self.assertEqual(metadata['author'], relax_file_info['metadata']['author'], 'The response metadata[\'author\'] is not match') self.assertEqual(metadata['home'], relax_file_info['metadata']['home'], 'The response metadata[\'home\'] is not match') self.assertEqual(metadata['age'], relax_file_info['metadata']['age'], 'The response metadata[\'age\'] is not match') #assert content-type self.assertEqual(mimetype, relax_file_info['headers']['content-type'], 'The response content-type is not match')
def test_file_acl_info(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) content = u'this is a file content text!!' canned_acl = 'public-read-write' #快捷ACL scs.put(key=self.object_key, data=content, acl=canned_acl) #acl file_aclInfo = scs.acl_info(self.object_key) self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in file_aclInfo['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in file_aclInfo['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t write right')
def test_put_file(self): scs = SCSBucket(self.bucket_name) try: scs.put_bucket('public-read-write') except: self.fail('create bucket:%s is failed'%self.bucket_name) canned_acl = 'public-read-write' #快捷ACL metadata = {} #自定义文件属性信息 metadata['author'] = 'dage' metadata['home'] = 'tianjin' metadata['age'] = '18' mimetype = 'text/plain' scs.putFile(key=self.object_key, filePath=self.local_file_name, acl=canned_acl , metadata=metadata, mimetype=mimetype) scsResponse = scs.get(self.object_key) CHUNK = 16 * 1024 file_content = '' from sinastorage.vendored import six while True: chunk = scsResponse.read(CHUNK) if not chunk: break if isinstance(chunk, six.text_type): file_content += chunk else: file_content += chunk.decode("utf-8") #assert file_content # self.assertEqual(content, file_content, 'The uploaded file content is not metch local.%s'%file_content) #assert metadata self.assertEqual(metadata['author'], scsResponse.responseHeaders['x-amz-meta-author'], 'The response metadata[\'author\'] is not match') self.assertEqual(metadata['home'], scsResponse.responseHeaders['x-amz-meta-home'], 'The response metadata[\'home\'] is not match') self.assertEqual(metadata['age'], scsResponse.responseHeaders['x-amz-meta-age'], 'The response metadata[\'age\'] is not match') #assert content-type self.assertEqual(mimetype, scsResponse.responseHeaders['content-type'], 'The response content-type is not match') #assert acl aclResult = scs.acl_info(self.object_key) self.assertTrue(ACL.ACL_GROUP_ANONYMOUSE in aclResult['ACL'], 'The acl dose not contains GRPS000000ANONYMOUSE group') self.assertTrue(ACL.ACL_READ in aclResult['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t read right') self.assertTrue(ACL.ACL_WRITE in aclResult['ACL'][ACL.ACL_GROUP_ANONYMOUSE], 'The acl GRPS000000ANONYMOUSE group hasn\'t write right')
def file_acl_info(): s = SCSBucket('test11') acl = s.acl_info('sss.txt') print acl