上传对象回调
使用SDK时可能需要传入各类回调函数以完成您想要实现的相关操作,本文介绍上传对象回调的编写示例。
功能:
- 进行上传对象操作时的回调函数,用于获取要上传的数据,并将其作为put_object请求的内容发送到服务器。这个回调会重复进行,每次获取下一个数据块以写入服务,直到返回负值或0。
接口定义:
int (S3PutObjectDataCallback)(int bufferSize, char *buffer, void *callbackData);
参数:
参数名 | 类型 | 说明 |
---|---|---|
bufferSize | int | 缓存池的最大字节数 |
buffer | char * | 对象内容的缓存池 |
callbackData | void * | 发出请求时指定的回调数据 |
代码示例:
typedef struct put_object_callback_data
{
FILE *infile;
uint64_t contentLength;
} put_object_callback_data;
int putObjectDataCallback(int bufferSize, char *buffer,
void *callbackData)
{
put_object_callback_data *data = (put_object_callback_data *)callbackData;
int ret = 0;
if (data->contentLength)
{
int toRead = ((data->contentLength > (unsigned)bufferSize) ? (unsigned)bufferSize : data->contentLength);
ret = fread(buffer, 1, toRead, data->infile);
}
data->contentLength -= ret;
return ret;
}