[docs]classTencentCOSDirectoryLoader(BaseLoader):"""Load from `Tencent Cloud COS` directory."""
[docs]def__init__(self,conf:Any,bucket:str,prefix:str=""):"""Initialize with COS config, bucket and prefix. :param conf(CosConfig): COS config. :param bucket(str): COS bucket. :param prefix(str): prefix. """self.conf=confself.bucket=bucketself.prefix=prefix
[docs]deflazy_load(self)->Iterator[Document]:"""Load documents."""try:fromqcloud_cosimportCosS3ClientexceptImportError:raiseImportError("Could not import cos-python-sdk-v5 python package. ""Please install it with `pip install cos-python-sdk-v5`.")client=CosS3Client(self.conf)contents=[]marker=""whileTrue:response=client.list_objects(Bucket=self.bucket,Prefix=self.prefix,Marker=marker,MaxKeys=1000)if"Contents"inresponse:contents.extend(response["Contents"])ifresponse["IsTruncated"]=="false":breakmarker=response["NextMarker"]forcontentincontents:ifcontent["Key"].endswith("/"):continueloader=TencentCOSFileLoader(self.conf,self.bucket,content["Key"])yieldloader.load()[0]