Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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
}
Beispiel #5
0
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;
}