下载对象回调

使用SDK时可能需要传入各类回调函数以完成您想要实现的相关操作,本文介绍下载对象回调的编写示例。

功能:

  • 进行下载对象操作时的回调函数,用于提供存储服务中可用的下一个数据块,这些数据块构成了正在获取的对象的内容。这个回调会重复进行,每次都提供下一个数据块的读取,直到传递完完整的对象内容,或者返回错误状态。

接口定义:

S3Status (S3GetObjectDataCallback)(int bufferSize, const char *buffer, void *callbackData);

参数:

参数名 类型 说明
bufferSize int 缓存池的最大字节数
buffer const char * 对象内容的缓存池
callbackData void * 发出请求时指定的回调数据

代码示例:

S3Status getObjectDataCallback(int bufferSize, const char *buffer,
                                      void *callbackData)
{
    FILE *outfile = (FILE *) callbackData;

    size_t wrote = fwrite(buffer, 1, bufferSize, outfile);
    
    return ((wrote < (size_t) bufferSize) ? 
            S3StatusAbortedByCallback : S3StatusOK);
}