本SDK提供ufile_put_buf
方法用于上传缓存内容到US3的存储空间中,完整代码详见 Github 。
ufile_put_buf
调用的 US3 API 为PutFile
, 具体参见PutFile API 文档。
方法原型
1
struct ufile_error ufile_put_buf(const char* bucket_name, const char *key, const char *mime_type, char *buffer, size_t buf_len)
参数说明
bucket_name
: 文件上传后所在的存储空间key
: 文件上传后在存储空间里的名称mime_type
: 文件上传后的类型,可为空buffer
: 待上传的缓存数据buf_len
: 待上传缓存数据的字节长度
示例
执行该示例请先配置
UFILE_*
相关环境变量并赋予bucket_name
、key
、mime_type
和buffer
有效值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "../lib/api.h"
#include <stdio.h>
#include <stdlib.h>
const char* bucket_name = "your bucket name";
const char* key = "your file key";
const char* buffer = "contents to be uploaded";
const char* mime_type = "your file type";
int main(int argc, char *argv[]){
// 读取配置初始化SDK
struct ufile_config cfg;
cfg.public_key = getenv("UFILE_PUBLIC_KEY");
cfg.private_key = getenv("UFILE_PRIVATE_KEY");
cfg.bucket_host = getenv("UFILE_BUCKET_HOST");
cfg.file_host = getenv("UFILE_FILE_HOST");
struct ufile_error error;
error = ufile_sdk_initialize(cfg, 0);
if(UFILE_HAS_ERROR(error.code)){
printf("初始化 sdk 失败,错误信息为:%s\n", error.message);
return 1;
}
// 调用 ufile_put_buf 上传缓存
int buf_len = strlen(buffer);
error = ufile_put_buf(bucket_name, key, mime_type, buffer, buf_len);
if UFILE_HAS_ERROR(error.code) {
printf("调用 ufile_put_buf 失败,错误信息为:%s\n", error.message);
}
// 释放初始化SDK时分配的内存
ufile_sdk_cleanup();
return 0;
}