s3/put: use put2
This commit is contained in:
parent
d155cfcf0f
commit
f206fa07d0
|
@ -31,6 +31,7 @@ extern int32_t tsS3BlockCacheSize;
|
||||||
int32_t s3Init();
|
int32_t s3Init();
|
||||||
void s3CleanUp();
|
void s3CleanUp();
|
||||||
int32_t s3PutObjectFromFile(const char *file, const char *object);
|
int32_t s3PutObjectFromFile(const char *file, const char *object);
|
||||||
|
int32_t s3PutObjectFromFile2(const char *file, const char *object);
|
||||||
void s3DeleteObjectsByPrefix(const char *prefix);
|
void s3DeleteObjectsByPrefix(const char *prefix);
|
||||||
void s3DeleteObjects(const char *object_name[], int nobject);
|
void s3DeleteObjects(const char *object_name[], int nobject);
|
||||||
bool s3Exists(const char *object_name);
|
bool s3Exists(const char *object_name);
|
||||||
|
|
|
@ -114,7 +114,7 @@ static int32_t tsdbCopyFileS3(SRTNer *rtner, const STFileObj *from, const STFile
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
char *object_name = taosDirEntryBaseName(fname);
|
char *object_name = taosDirEntryBaseName(fname);
|
||||||
code = s3PutObjectFromFile(from->fname, object_name);
|
code = s3PutObjectFromFile2(from->fname, object_name);
|
||||||
TSDB_CHECK_CODE(code, lino, _exit);
|
TSDB_CHECK_CODE(code, lino, _exit);
|
||||||
|
|
||||||
taosCloseFile(&fdFrom);
|
taosCloseFile(&fdFrom);
|
||||||
|
|
|
@ -59,17 +59,19 @@ int32_t s3PutObjectFromFile(const char *file_str, const char *object_str) {
|
||||||
cos_request_options_t *options = NULL;
|
cos_request_options_t *options = NULL;
|
||||||
cos_string_t bucket, object, file;
|
cos_string_t bucket, object, file;
|
||||||
cos_table_t *resp_headers;
|
cos_table_t *resp_headers;
|
||||||
int traffic_limit = 0;
|
// int traffic_limit = 0;
|
||||||
|
|
||||||
cos_pool_create(&p, NULL);
|
cos_pool_create(&p, NULL);
|
||||||
options = cos_request_options_create(p);
|
options = cos_request_options_create(p);
|
||||||
s3InitRequestOptions(options, is_cname);
|
s3InitRequestOptions(options, is_cname);
|
||||||
cos_table_t *headers = NULL;
|
cos_table_t *headers = NULL;
|
||||||
|
/*
|
||||||
if (traffic_limit) {
|
if (traffic_limit) {
|
||||||
// 限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误
|
// 限速值设置范围为819200 - 838860800,即100KB/s - 100MB/s,如果超出该范围将返回400错误
|
||||||
headers = cos_table_make(p, 1);
|
headers = cos_table_make(p, 1);
|
||||||
cos_table_add_int(headers, "x-cos-traffic-limit", 819200);
|
cos_table_add_int(headers, "x-cos-traffic-limit", 819200);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
cos_str_set(&bucket, tsS3BucketName);
|
cos_str_set(&bucket, tsS3BucketName);
|
||||||
cos_str_set(&file, file_str);
|
cos_str_set(&file, file_str);
|
||||||
cos_str_set(&object, object_str);
|
cos_str_set(&object, object_str);
|
||||||
|
@ -85,6 +87,48 @@ int32_t s3PutObjectFromFile(const char *file_str, const char *object_str) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t s3PutObjectFromFile2(const char *file_str, const char *object_str) {
|
||||||
|
int32_t code = 0;
|
||||||
|
cos_pool_t *p = NULL;
|
||||||
|
int is_cname = 0;
|
||||||
|
cos_status_t *s = NULL;
|
||||||
|
cos_request_options_t *options = NULL;
|
||||||
|
cos_string_t bucket, object, file;
|
||||||
|
cos_table_t *resp_headers;
|
||||||
|
int traffic_limit = 0;
|
||||||
|
cos_table_t *headers = NULL;
|
||||||
|
cos_resumable_clt_params_t *clt_params = NULL;
|
||||||
|
|
||||||
|
cos_pool_create(&p, NULL);
|
||||||
|
options = cos_request_options_create(p);
|
||||||
|
s3InitRequestOptions(options, is_cname);
|
||||||
|
headers = cos_table_make(p, 0);
|
||||||
|
cos_str_set(&bucket, tsS3BucketName);
|
||||||
|
cos_str_set(&file, file_str);
|
||||||
|
cos_str_set(&object, object_str);
|
||||||
|
|
||||||
|
// upload
|
||||||
|
clt_params = cos_create_resumable_clt_params_content(p, 1024 * 1024, 8, COS_FALSE, NULL);
|
||||||
|
s = cos_resumable_upload_file(options, &bucket, &object, &file, headers, NULL, clt_params, NULL, &resp_headers, NULL);
|
||||||
|
|
||||||
|
if (!cos_status_is_ok(s)) {
|
||||||
|
vError("s3: %s", s->error_msg);
|
||||||
|
vError("%s failed at line %d since %s", __func__, __LINE__, tstrerror(terrno));
|
||||||
|
code = terrno;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
log_status(s);
|
||||||
|
|
||||||
|
cos_pool_destroy(p);
|
||||||
|
|
||||||
|
if (s->code != 200) {
|
||||||
|
return code = s->code;
|
||||||
|
}
|
||||||
|
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
void s3DeleteObjectsByPrefix(const char *prefix_str) {
|
void s3DeleteObjectsByPrefix(const char *prefix_str) {
|
||||||
cos_pool_t *p = NULL;
|
cos_pool_t *p = NULL;
|
||||||
cos_request_options_t *options = NULL;
|
cos_request_options_t *options = NULL;
|
||||||
|
@ -404,6 +448,7 @@ long s3Size(const char *object_name) {
|
||||||
int32_t s3Init() { return 0; }
|
int32_t s3Init() { return 0; }
|
||||||
void s3CleanUp() {}
|
void s3CleanUp() {}
|
||||||
int32_t s3PutObjectFromFile(const char *file, const char *object) { return 0; }
|
int32_t s3PutObjectFromFile(const char *file, const char *object) { return 0; }
|
||||||
|
int32_t s3PutObjectFromFile2(const char *file, const char *object) { return 0; }
|
||||||
void s3DeleteObjectsByPrefix(const char *prefix) {}
|
void s3DeleteObjectsByPrefix(const char *prefix) {}
|
||||||
void s3DeleteObjects(const char *object_name[], int nobject) {}
|
void s3DeleteObjects(const char *object_name[], int nobject) {}
|
||||||
bool s3Exists(const char *object_name) { return false; }
|
bool s3Exists(const char *object_name) { return false; }
|
||||||
|
|
Loading…
Reference in New Issue