릴리스 노트
제품 공지

import android.content.Context;import com.tencent.cos.xml.*;import com.tencent.qcloud.core.auth.*;import com.tencent.qcloud.core.common.*;import com.tencent.qcloud.core.http.*;import java.net.*;Context context = ...;CosXmlServiceConfig cosXmlServiceConfig = ...;/*** 라이선스 서비스의 url 주소 획득*/URL url = null; // 백그라운드의 라이선스 서비스 url 주소try {url = new URL("your_auth_server_url");} catch (MalformedURLException e) {e.printStackTrace();}/*** {@link QCloudCredentialProvider} 객체 초기화로 SDK에 임시 키 부여*/QCloudCredentialProvider credentialProvider = new SessionCredentialProvider(new HttpRequest.Builder<String>().url(url).method("GET").build());CosXmlService cosXmlService = new CosXmlService(context, cosXmlServiceConfig, credentialProvider);
import android.content.Context;import com.tencent.cos.xml.*;import com.tencent.qcloud.core.auth.*;import com.tencent.qcloud.core.common.*;import com.tencent.qcloud.core.http.*;import java.net.*;public class MyCredentialProvider extends BasicLifecycleCredentialProvider {@Overrideprotected QCloudLifecycleCredentials fetchNewCredentials() throws QCloudClientException {// 먼저 임시 키 서버로부터 서명 정보가 담긴 응답 획득....// 응답을 분석하여 키 정보 획득String tmpSecretId = ...;String tmpSecretKey = ...;String sessionToken = ...;long expiredTime = ...;// 서버 반환 시간을 서명 시작 시간으로 설정long beginTime = ...;// todo something you want// 최종적으로 임시 키 정보 객체 반환return new SessionQCloudCredentials(tmpSecretId, tmpSecretKey, sessionToken, beginTime, expiredTime);}}
import android.content.Context;import com.tencent.cos.xml.*;import com.tencent.qcloud.core.auth.*;import com.tencent.qcloud.core.common.*;import com.tencent.qcloud.core.http.*;import java.net.*;Context context = ...;CosXmlServiceConfig cosXmlServiceConfig = ...;/*** {@link QCloudCredentialProvider} 객체 초기화로 SDK에 임시 키 부여*/QCloudCredentialProvider credentialProvider = new MyCredentialProvider();CosXmlService cosXmlService = new CosXmlService(context, cosXmlServiceConfig, credentialProvider);
//AppDelegate.m//AppDelegate는 QCloudCredentailFenceQueueDelegate 프로토콜 따름//- (BOOL)application:(UIApplication * )application didFinishLaunchingWithOptions:(NSDictionary * )launchOptions {// init stepself.credentialFenceQueue = [QCloudCredentailFenceQueue new];self.credentialFenceQueue.delegate = self;return YES;}
- (void) fenceQueue:(QCloudCredentailFenceQueue * )queue requestCreatorWithContinue:(QCloudCredentailFenceQueueContinue)continueBlock
- (void)fenceQueue:(QCloudCredentailFenceQueue *)queue requestCreatorWithContinue:(QCloudCredentailFenceQueueContinue)continueBlock {QCloudHTTPRequest* request = [QCloudHTTPRequest new];request.requestData.serverURL = @“your sign service url”;//요청한 URL[request setConfigureBlock:^(QCloudRequestSerializer *requestSerializer, QCloudResponseSerializer *responseSerializer) {requestSerializer.serializerBlocks = @[QCloudURLFuseWithURLEncodeParamters];responseSerializer.serializerBlocks = @[QCloudAcceptRespnseCodeBlock([NSSet setWithObjects:@(200), nil],nil),//반환 코드가 200이 아닌 경우, 오류 반환QCloudResponseJSONSerilizerBlock];//JSON 형식에 따라 반환 데이터 분석}];[request setFinishBlock:^(id response, NSError *error) {if (error) {error = [NSError errorWithDomain:@"com.tac.test" code:-1111 userInfo:@{NSLocalizedDescriptionKey:@"임시 키 미획득"}];continueBlock(nil, error);} else {QCloudCredential* crendential = [[QCloudCredential alloc] init];crendential.secretID = response[@"data"][@"credentials"][@"tmpSecretId"];crendential.secretKey = response[@"data"][@"credentials"][@"tmpSecretKey"];credential.startDate =[NSDate dateWithTimeIntervalSince1970:@"반환된 서버 시간"]crendential.experationDate = [NSDate dateWithTimeIntervalSinceNow:[response[@"data"][@"expiredTime"] intValue]];crendential.token = response[@"data"][@"credentials"][@"sessionToken"];;QCloudAuthentationV5Creator* creator = [[QCloudAuthentationV5Creator alloc] initWithCredential:crendential];continueBlock(creator, nil);}}];[[QCloudHTTPSessionManager shareClient] performRequest:request];}
pod install
피드백