void testIoPut() { Qiniu_Error err; Qiniu_Client client; Qiniu_RS_PutPolicy putPolicy; Qiniu_RS_GetPolicy getPolicy; char* uptoken; char* dntoken; Qiniu_Client_InitMacAuth(&client, 1024, NULL); Qiniu_Zero(putPolicy); putPolicy.scope = bucket; uptoken = Qiniu_RS_PutPolicy_Token(&putPolicy, NULL); Qiniu_RS_Delete(&client, bucket, key); clientIoPutFile(uptoken); Qiniu_RS_Delete(&client, bucket, key); clientIoPutBuffer(uptoken); free(uptoken); Qiniu_Zero(getPolicy); getPolicy.scope = "*/*"; dntoken = Qiniu_RS_GetPolicy_Token(&getPolicy, NULL); clientIoGet(dntoken); free(dntoken); Qiniu_Client_Cleanup(&client); }
void testResumableIoPut(void) { Qiniu_Client client; Qiniu_RS_PutPolicy putPolicy; Qiniu_RS_GetPolicy getPolicy; char* uptoken; char* dnBaseUrl; char* dnRequest; Qiniu_Client_InitMacAuth(&client, 1024, NULL); Qiniu_Zero(putPolicy); putPolicy.scope = bucket; uptoken = Qiniu_RS_PutPolicy_Token(&putPolicy, NULL); Qiniu_RS_Delete(&client, bucket, key); clientIoPutFile(uptoken); Qiniu_RS_Delete(&client, bucket, key); clientIoPutBuffer(uptoken); Qiniu_Free(uptoken); Qiniu_Zero(getPolicy); dnBaseUrl = Qiniu_RS_MakeBaseUrl(domain, key); dnRequest = Qiniu_RS_GetPolicy_MakeRequest(&getPolicy, dnBaseUrl, NULL); clientIoGet(dnRequest); Qiniu_Free(dnRequest); Qiniu_Free(dnBaseUrl); Qiniu_Client_Cleanup(&client); }
void up_chunk_upload() { Qiniu_Global_Init(-1); Qiniu_Rio_PutRet putRet; Qiniu_Client client; Qiniu_RS_PutPolicy putPolicy; Qiniu_Rio_PutExtra putExtra; char *accessKey = getenv("QINIU_ACCESS_KEY"); char *secretKey = getenv("QINIU_SECRET_KEY"); char *bucket = getenv("QINIU_TEST_BUCKET"); char *key = "2017/08/12/upload.mp4"; char *localFile = "E:\\Data\\upload.mp4"; Qiniu_Mac mac; mac.accessKey = accessKey; mac.secretKey = secretKey; Qiniu_Zero(putPolicy); Qiniu_Zero(putExtra); putPolicy.scope = bucket; char *uptoken = Qiniu_RS_PutPolicy_Token(&putPolicy, &mac); //设置机房域名 //Qiniu_Use_Zone_Beimei(Qiniu_False); //Qiniu_Use_Zone_Huabei(Qiniu_True); Qiniu_Use_Zone_Huadong(Qiniu_False); //Qiniu_Use_Zone_Huanan(Qiniu_True); //put extra //putExtra.upHost="http://nbxs-gate-up.qiniu.com"; putExtra.mimeType="video/x-mp4"; //init Qiniu_Client_InitMacAuth(&client, 1024, &mac); Qiniu_Error error = Qiniu_Rio_PutFile(&client, &putRet, uptoken, key, localFile, &putExtra); if (error.code != 200) { printf("upload file %s:%s error.\n", bucket, key); debug_log(&client, error); } else { /*200, 正确返回了, 你可以通过statRet变量查询一些关于这个文件的信息*/ printf("upload file %s:%s success.\n\n", bucket, key); printf("key:\t%s\n", putRet.key); printf("hash:\t%s\n", putRet.hash); } Qiniu_Free(uptoken); Qiniu_Client_Cleanup(&client); }
int GetUploadToken(char *pBuf, int nBufLen) { #ifdef DISABLE_OPENSSL memset(pBuf, 0, nBufLen); CURL *curl; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, "http://39.107.247.14:8086/qiniu/upload/token"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeData); struct CurlToken token; token.pData = pBuf; token.nDataLen = nBufLen; token.nCurlRet = 0; curl_easy_setopt(curl, CURLOPT_WRITEDATA, &token); int ret =curl_easy_perform(curl); if (ret != 0) { curl_easy_cleanup(curl); return ret; } curl_easy_cleanup(curl); return token.nCurlRet; #else if (gAk[0] == 0 || gSk[0] == 0 || gBucket[0] == 0) return -11; memset(pBuf, 0, nBufLen); Qiniu_Mac mac; mac.accessKey = gAk; mac.secretKey = gSk; Qiniu_RS_PutPolicy putPolicy; Qiniu_Zero(putPolicy); putPolicy.scope = gBucket; putPolicy.expires = 40; putPolicy.deleteAfterDays = 7; putPolicy.callbackBody = "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"fsize\":$(fsize),\"bucket\":\"$(bucket)\",\"name\":\"$(x:name)\",\"duration\":\"$(avinfo.format.duration)\"}"; putPolicy.callbackUrl = CALLBACK_URL; putPolicy.callbackBodyType = "application/json"; char *uptoken; uptoken = Qiniu_RS_PutPolicy_Token(&putPolicy, &mac); assert(nBufLen > strlen(uptoken)); strcpy(pBuf, uptoken); Qiniu_Free(uptoken); return 0; #endif }
int main(int argc, char * argv[]) { Qiniu_Client client; Qiniu_Mac mac; char * bucketName = "test"; char * file_path = "./local.txt"; mac.accessKey = "Hw_2_emX0FV5fe26brBCemk3Yhdzd5l86UwfI9_n"; mac.secretKey = "V09N6hmt3Z4vieC7Ps3g6HAyQ136cGSmAj7UtjWv"; Qiniu_Servend_Init(-1); Qiniu_Client_InitNoAuth(&client, 1024); #if 0 //upload Qiniu_RS_PutPolicy putPolicy; Qiniu_Zero(putPolicy); putPolicy.scope = "test"; char * uploadtoken = Qiniu_RS_PutPolicy_Token(&putPolicy, &mac); Qiniu_Io_PutRet putRet; Qiniu_Error error = Qiniu_Io_PutFile(&client, &putRet, uploadtoken, "local.txt", "./local.txt", NULL); if (error.code != 200) { printf("!200 ERROR\n"); } else { printf("200 OK\n"); } Qiniu_Free(uploadtoken); #endif #if 1 //download Qiniu_RS_GetPolicy getPolicy; Qiniu_Zero(getPolicy); //char* domain = Qiniu_String_Concat2("heenbo-test", "o9mmpvxgk.bkt.clouddn.com"); char* domain = Qiniu_String_Concat2("", "o9mmpvxgk.bkt.clouddn.com"); printf("domain:%s\n", domain); char * baseUrl = Qiniu_RS_MakeBaseUrl(domain, "a.txt"); printf("baseUrl: %s\n", baseUrl); char * url = Qiniu_RS_GetPolicy_MakeRequest(&getPolicy, baseUrl, &mac); printf("url:%s\n", url); Qiniu_Free(baseUrl); Qiniu_Free(url); Qiniu_Free(domain); #endif Qiniu_Client_Cleanup(&client); Qiniu_Servend_Cleanup(); return 0; }