获取文件基本信息

本SDK提供UFileHeadfile类来获取文件基本信息,完整代码详见 Github

UUFileHeadfile::GetFileInfo调用的 US3 API 为HEADFile, 具体参见GetFile API文档

方法原型

1
2
3
4
5
6
7
8
9
10
struct FileInfo {
  std::string type;          // 文件类型
  uint64_t size;             // 文件大小
  std::string etag;          // 文件的etag
  std::string last_modified; // 上次修改时间
  std::string create_time;   // 创建时间
  std::string storage_class; // 存储类型
};

int GetFileInfo(const std::string &bucket, const std::string &key, FileInfo *result);

参数说明

  • bucket: 文件上传后所在的存储空间
  • key: 文件上传后在存储空间里的名称
  • result: 要保存返回结果的FileInfo对象的地址

示例

执行该示例前请确保配置文件的正确性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <ufile-cppsdk/api.h>

const char* bucket_name = "your bucket name";
const char* key = "your file key";

int main() {
  // 实例化一个UFileHeadfile对象
  ucloud::cppsdk::api::UFileHeadfile headfiler;

  ucloud::cppsdk::api::FileInfo fileinfo;

  // 调用成员函数GetFileInfo删除文件
  int ret = headfiler.GetFileInfo(bucket_name, key, &fileinfo);
  if (ret) {
    std::cerr << "get file info error: retcode=" << ret 
              << ", errmsg=" << UFILE_LAST_ERRMSG() << std::endl;
    return ret;
  }
  std::cout << "get file info success" << std::endl;
  std::cout << fileinfo.create_time << std::endl;
  return 0;
}