获取对象属性
对象是存储数据的基本单元。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由桶内部唯一的Key来标识。本文介绍获取对象属性值。
接口定义:
void S3_head_object(const S3BucketContext *bucketContext, const char *key,
S3RequestContext *requestContext,
int timeoutMs,
const S3ResponseHandler *handler, void *callbackData);
参数:
参数名 | 类型 | 说明 |
---|---|---|
bucketContext | const S3BucketContext * | 包含bucket及相关的请求参数 |
key | const char * | 要获取属性的对象名称 |
requestContext | S3RequestContext * | 请求参数,如果为NULL,则立即同步执行请求 |
timeoutMs | int | 如果非0,则是以毫秒为单位的请求超时时间 |
handler | const S3ResponseHandler * | 回调函数 |
callbackData | void * | 回调数据 |
代码示例:
#include <unistd.h>
void head_object(const char *bucketName, const char *key)
{
S3BucketContext bucketContext =
{
hostname,
bucketName,
protocolG,
uriStyleG,
accessKeyG,
secretKeyG};
S3ResponseHandler responseHandler =
{
&responsePropertiesCallback,//在此回调函数中编写相应的代码以获取您所需要的属性
&responseCompleteCallback};
do
{
S3_head_object(&bucketContext, key, 0, 0, &responseHandler, 0);
} while (S3_status_is_retryable(statusG) && should_retry());
if ((statusG != S3StatusOK) &&
(statusG != S3StatusErrorPreconditionFailed))
{
printError();
}
}