@@ -213,15 +213,20 @@ - (void)finishUploadParts {
213213}
214214
215215- (QCloudCOSXMLService*)tempService {
216- QCloudServiceConfiguration* configuration = [QCloudServiceConfiguration new ];
217- configuration.signatureProvider = self.transferManager .configuration .signatureProvider ;
218- configuration.appID = self.sourceAPPID ;
219- QCloudCOSXMLEndPoint* endpoint = [[QCloudCOSXMLEndPoint alloc ] init ];
220- endpoint.regionName = self.sourceRegion ;
221- endpoint.serviceName = self.transferManager .configuration .endpoint .serviceName ;
222- endpoint.useHTTPS = self.transferManager .configuration .endpoint .useHTTPS ;
223- configuration.endpoint = endpoint;
224- return [QCloudCOSXMLService registerCOSXMLWithConfiguration: configuration withKey: kTempServiceKey ];
216+ static dispatch_once_t onceToken;
217+ static QCloudCOSXMLService* service ;
218+ dispatch_once (&onceToken, ^{
219+ QCloudServiceConfiguration* configuration = [QCloudServiceConfiguration new ];
220+ configuration.signatureProvider = self.transferManager .configuration .signatureProvider ;
221+ configuration.appID = self.sourceAPPID ;
222+ QCloudCOSXMLEndPoint* endpoint = [[QCloudCOSXMLEndPoint alloc ] init ];
223+ endpoint.regionName = self.sourceRegion ;
224+ endpoint.serviceName = self.transferManager .configuration .endpoint .serviceName ;
225+ endpoint.useHTTPS = self.transferManager .configuration .endpoint .useHTTPS ;
226+ configuration.endpoint = endpoint;
227+ service = [QCloudCOSXMLService registerCOSXMLWithConfiguration: configuration withKey: kTempServiceKey ];
228+ });
229+ return service;
225230}
226231
227232- (void ) setFinishBlock : (void (^)(QCloudCopyObjectResult* result, NSError * error))QCloudRequestFinishBlock {
0 commit comments