- 论坛徽章:
- 0
|
本帖最后由 guguozhifeng 于 2012-11-15 16:46 编辑
我看了my_fdfs_do_upload_file函数,这个api不可以指定FDHTKeyInfo 的szObjectId ,可以指定szNameSpace,但是在填充FDHTKeyInfo 时,
将my_file_id赋值给了szObjectId,而szKey是一个在头文件里定义的一个MY_CLIENT_FILE_ID_KEY_NAME。
我不理解这个怎么回事。。。。。。。。。。。。。
我看了大大的一篇介绍fastdht的文章http://bbs.csdn.net/topics/300092283,上面说szObjectId相当于表名啊。
下面这个是具体填充FDHTKeyInfo 的函数的源代码
static void my_fdfs_fill_key_info(FDHTKeyInfo *pKeyInfo, \
MyClientContext *pContext, const char *my_file_id)
{
pKeyInfo->namespace_len = pContext->fdht.namespace_len;
memcpy(pKeyInfo->szNameSpace, pContext->fdht.szNameSpace, \
pContext->fdht.namespace_len + 1);
pKeyInfo->obj_id_len = strlen(my_file_id);
if (pKeyInfo->obj_id_len > FDHT_MAX_OBJECT_ID_LEN)
{
pKeyInfo->obj_id_len = FDHT_MAX_OBJECT_ID_LEN;
}
memcpy(pKeyInfo->szObjectId, my_file_id, pKeyInfo->obj_id_len + 1);
pKeyInfo->key_len = sizeof(MY_CLIENT_FILE_ID_KEY_NAME) - 1;
memcpy(pKeyInfo->szKey, MY_CLIENT_FILE_ID_KEY_NAME, pKeyInfo->key_len + 1);
}
不知道是不是我没有理解清楚,请大大解惑。 |
|