Example #1
0
QBox_Error QBox_Token_ExchangeByRefreshToken(QBox_Token** token, const char* refreshToken)
{
	QBox_Error err;
	*token = QBox_Token_new();
	err = QBox_Token_refresh(*token, refreshToken);
	if (err.code != 200) {
		QBox_Token_Release(*token);
	}
	return err;
}
Example #2
0
static void QBox_PasswordAuth_Release(void* self1)
{
	QBox_PasswordAuth* self = (QBox_PasswordAuth*)self1;

	if (self->authHeader != NULL) {
		curl_slist_free_all((struct curl_slist*)self->authHeader);
		self->authHeader = NULL;
	}
	if (self->token != NULL) {
		QBox_Token_Release(self->token);
		self->token = NULL;
	}
	free(self);
}
Example #3
0
QBox_Error QBox_Token_ExchangeByPassword(QBox_Token** token, const char* user, const char* passwd)
{
	char* params;
	char* userEsc;
	char* passwdEsc;
	int fuserEsc, fpasswdEsc;
	CURL* curl;
	QBox_Error err;
	QBox_Json* root = NULL;

	userEsc = QBox_QueryEscape(user, &fuserEsc);
	passwdEsc = QBox_QueryEscape(passwd, &fpasswdEsc);

	params = QBox_String_Concat(
		"client_id=", QBOX_CLIENT_ID, "&client_secret=", QBOX_CLIENT_SECRET,
		"&grant_type=password&username="******"&password=", passwdEsc, NULL);

	if (fuserEsc) {
		free(userEsc);
	}
	if (fpasswdEsc) {
		free(passwdEsc);
	}

	curl = curl_easy_init();

	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
	curl_easy_setopt(curl, CURLOPT_URL, QBOX_TOKEN_ENDPOINT);
	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, params);

	err = QBox_call(curl, QBox_initBufSize, &root, QBox_True);
	curl_easy_cleanup(curl);
	free(params);

	if (err.code == 200) {
		*token = QBox_Token_new();
		QBox_Token_ret(*token, root, &err);
		if (err.code != 200) {
			QBox_Token_Release(*token);
		}
	}

	if (root != NULL) {
		cJSON_Delete(root);
	}
	return err;
}
Example #4
0
int main()
{
    QBox_Error err;
    QBox_Token* token;
    QBox_Client client;
    QBox_RS_PutAuthRet putAuthRet;
    QBox_RS_PutRet putRet;
    QBox_RS_GetRet getRet;
    QBox_RS_StatRet statRet;
    char* hash;

    QBox_Zero(client);
    QBox_Global_Init(-1);

    printf("QBox_Token_ExchangeByPassword\n");

    err = QBox_Token_ExchangeByPassword(&token, "*****@*****.**", "test");
    if (err.code != 200) {
        printf("QBox_Token_ExchangeByPassword failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    QBox_Client_InitByPassword(&client, token, 1024);
    QBox_Token_Release(token);
    QBox_RS_Delete(&client, "Bucket", "rs_demo.c");

    printf("QBox_RS_PutFile\n");

    err = QBox_RS_PutFile(&client, &putRet, "Bucket", "rs/demo.c", "application/octet-stream", __FILE__, "");
    if (err.code != 200) {
        printf("QBox_RS_PutFile failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Get\n");

    err = QBox_RS_Get(&client, &getRet, "Bucket", "rs/demo.c", NULL);
    if (err.code != 200) {
        printf("QBox_RS_Get failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_PutAuth\n");

    err = QBox_RS_PutAuth(&client, &putAuthRet);
    if (err.code != 200) {
        printf("QBox_RS_PutAuth failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RSCli_PutFile\n");

    err = QBox_RSCli_PutFile(NULL, putAuthRet.url, "Bucket", "rs_demo.c", "application/octet-stream", __FILE__, "", "key=rs_demo.c");
    if (err.code != 200) {
        printf("QBox_RS_PutFile failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Get\n");

    err = QBox_RS_Get(&client, &getRet, "Bucket", "rs_demo.c", NULL);
    if (err.code != 200) {
        printf("QBox_RS_Get failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }
    hash = strdup(getRet.hash);

    printf("QBox_RS_GetIfNotModified: %s\n", hash);

    err = QBox_RS_GetIfNotModified(&client, &getRet, "Bucket", "rs_demo.c", NULL, hash);
    free(hash);
    if (err.code != 200) {
        printf("QBox_RS_GetIfNotModified failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Stat\n");

    err = QBox_RS_Stat(&client, &statRet, "Bucket", "rs_demo.c");
    if (err.code != 200) {
        printf("QBox_RS_Stat failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Publish\n");

    err = QBox_RS_Publish(&client, "Bucket", "iovip.qbox.me/Bucket");
    if (err.code != 200) {
        printf("QBox_RS_Publish failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Unpublish\n");

    err = QBox_RS_Unpublish(&client, "iovip.qbox.me/Bucket");
    if (err.code != 200) {
        printf("QBox_RS_Unpublish failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Delete\n");

    err = QBox_RS_Delete(&client, "Bucket", "rs_demo.c");
    if (err.code != 200) {
        printf("QBox_RS_Delete failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

    printf("QBox_RS_Drop\n");

    err = QBox_RS_Drop(&client, "Bucket");
    if (err.code != 200) {
        printf("QBox_RS_Drop failed: %d - %s\n", err.code, err.message);
        goto lzDone;
    }

lzDone:
    QBox_Client_Cleanup(&client);
    QBox_Global_Cleanup();
    return 0;
}