def PostObject(obsAddr, bucket, objName, ak, sk): TestObs = ObsClient(access_key_id=ak, secret_access_key=sk, is_secure=secure, server=obsAddr, signature=signature, path_style=path_style, region=region, ssl_verify=False, port=port, max_retry_count=5, timeout=20) Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain') Lheaders.sseHeader = SseKmsHeader.getInstance() h = PutObjectHeader() Lmetadata = {'key': 'value'} objPath = TEMP_ROOT_PATH + objName resp = TestObs.postObject(bucketName=bucket, objectKey=objName, file_path=objPath, metadata=Lmetadata, headers=h) if isinstance(resp, list): for k, v in resp: print('PostObject, objectKey', k, 'common msg:status:', v.status, ',errorCode:', v.errorCode, ',errorMessage:', v.errorMessage) else: print('PostObject, common msg: status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage)
def PutFile(): Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain') Lheaders.sseHeader = SseKmsHeader.getInstance() Lmetadata = {'key': 'value'} file_path = '/temp/test.txt' resp = TestObs.putFile(bucketName='bucket001', objectKey='test.txt', file_path=file_path, metadata=Lmetadata, headers=Lheaders) if isinstance(resp, list): for k, v in resp: print('objectKey',k, 'common msg:status:', v.status, ',errorCode:', v.errorCode, ',errorMessage:', v.errorMessage) else: print('common msg:status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage)
def __init__(self, conf=None): if not conf: self.__conf__ = get_settings_environment("pro") #缺省配置 self.__ak__ = self.__conf__.OBS_AK if conf is not None else _AK self.__sk__ = self.__conf__.OBS_SK if conf is not None else _SK self.__issecure__ = self.__conf__.OBS_ISSECURE if conf is not None else _ISSECURE self.__server__ = self.__conf__.OBS_SERVER if conf is not None else _SERVER self.__signature__ = self.__conf__.OBS_SIGNATURE if conf is not None else _SIGNATURE self.__region__ = self.__conf__.OBS_REGION if conf is not None else _REGION self.__client__ = ObsClient(access_key_id=self.__ak__, secret_access_key=self.__sk__, is_secure=self.__issecure__, server=self.__server__, signature=self.__signature__, region=self.__region__) #缺省桶名称 self.__bucketname__ = self.__conf__.OBS_BUCKETNAME #消息头 self.__header__ = PutObjectHeader(md5=self.__conf__.OBS_MD5, acl=self.__conf__.OBS_ACL, location=self.__conf__.OBS_LOCATION)
def PutContent(): sseHeader = SseKmsHeader.getInstance() Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain', sseHeader=sseHeader) Lmetadata = {'key': 'value'} resp = TestObs.putContent(bucketName='bucket001', objectKey='test.txt', content='msg content to put', metadata=Lmetadata, headers=Lheaders) print('common msg:status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage) print(resp.header)
def PostObject(bucketname, dirName, filePath): ''' 引入库: from com.obs.client.obs_client import ObsClient from com.obs.models.put_object_header import PutObjectHeader from com.obs.models.server_side_encryption import SseKmsHeader,SseCHeader 函数原型:postObject(self, bucketName, objectKey, file_path, metadata=None, headers=None) 函数功能:上传对象 (上传内容) 参数说明: bucketName:桶名 (必填) objectKey:对象名 dirName: 如果上传的是目录,该名称是保存到OBS桶中的名称 file_path:上传文件路径,支持文件夹上传 metadata:加入自定义的元数据,以便对对象进行自定义管理 headers:附加消息头 返回值:GetResult对象,GetResult.header: 返回头部信息 , GetResult.body: None ''' Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain') # Lheaders.md:对象的MD5值 # Lheaders.acl:可以加上此消息头设置对象的权限控制策略,使用的策略为预定义的常用策略 # Lheaders.location:当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL # Lheaders.contentType:对象的类型 # Lheaders.sseHeader:服务端加密头信息 # Lheaders.sseHeader = SseKmsHeader.getInstance() Lmetadata = {'key': 'value'} #file_path = r'C:\test.txt' resp = TestObs.postObject(bucketName=bucketname, objectKey=dirName, file_path=filePath, metadata=Lmetadata, headers=Lheaders) if isinstance(resp, list): for k, v in resp: print('objectKey', k, 'common msg:status:', v.status, ',errorCode:', v.errorCode, ',errorMessage:', v.errorMessage) else: print('common msg:status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage)
def PutObject(bucketname, fileName, fileContent): ''' 引入库: from com.obs.client.obs_client import ObsClient from com.obs.models.put_object_header import PutObjectHeader from com.obs.models.server_side_encryption import SseKmsHeader,SseCHeader 函数原型:putObject(self, bucketName, objectKey, content, metadata=None, headers=PutObjectHeader()) 函数功能:上传对象 (上传内容) 参数说明: bucketName:桶名 (必填) objectKey:对象名 content:对象内容 metadata:加入自定义的元数据,以便对对象进行自定义管理 headers:附加消息头 返回值:GetResult对象,GetResult.header: 返回头部信息 , GetResult.body: None ''' sseHeader = SseKmsHeader.getInstance() #设置SSE-KMS加密 #sseHeader = SseCHeader.getInstance(key='xxxxx') #设置SSE-C加密,传入密钥 #Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='text/plain', sseHeader=sseHeader) Lheaders = PutObjectHeader(md5=None, acl='private', location=None, contentType='image/png') # contentType :'text/plain' 文本 image/png png格式的图片 image/jpeg jpeg格式的图片 # Lheaders.md:对象的MD5值 # Lheaders.acl:可以加上此消息头设置对象的权限控制策略,使用的策略为预定义的常用策略 # Lheaders.location:当桶设置了Website配置,可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL Lmetadata = {'key': 'value'} resp = TestObs.putObject(bucketname, objectKey=fileName, content=fileContent, metadata=Lmetadata, headers=Lheaders) print('common msg:status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage) print(resp.header)
from com.obs.client.obs_client import ObsClient # Constructs a obs client instance with your account for accessing OBS obsClient = ObsClient(access_key_id=AK, secret_access_key=SK, server=server, signature=signature, path_style=path_style) # Create bucket print('Create a new bucket for demo\n') obsClient.createBucket(bucketName) from com.obs.models.put_object_header import PutObjectHeader # Setting object mime type headers = PutObjectHeader(contentType='text/plain') # Setting self-defined metadata metadata = {'meta1': 'value1', 'meta2': 'value2'} resp = obsClient.putContent(bucketName, objectKey, 'Hello OBS', metadata=metadata, headers=headers) if resp.status < 300: print('Create object ' + objectKey + ' successfully!\n') else: print('common msg:status:', resp.status, ',errorCode:', resp.errorCode, ',errorMessage:', resp.errorMessage)
def set_putobjectheader(self, md5=None, acl=None, location=None): ''' #设置消息头 ''' self.__header__ = PutObjectHeader(md5=md5, acl=acl, location=location)