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 test_get_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) scsResponse = scs.get(self.object_key) CHUNK = 16 * 1024 with open(self.local_file_name+'.downloaded', 'wb') as fp: while True: chunk = scsResponse.read(CHUNK) if not chunk: break fp.write(bytes(chunk) ) import os self.assertTrue(os.path.exists(self.local_file_name+'.downloaded'), 'The download file dose not exists') self.assertEqual(str(os.stat(self.local_file_name).st_size), scsResponse.responseHeaders['content-length'], 'The download file size dose not match local file')
def test_put_content(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) 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") self.assertEqual(content, file_content, 'The uploaded file content is not match local.%s'%file_content)