流式上传主动cancel时会产生promise_fail回调
This commit is contained in:
5
cache/src/tango_cache_client.cpp
vendored
5
cache/src/tango_cache_client.cpp
vendored
@@ -260,6 +260,7 @@ void tango_cache_update_end(struct tango_cache_ctx *ctx)
|
||||
|
||||
void tango_cache_update_cancel(struct tango_cache_ctx *ctx)
|
||||
{
|
||||
ctx->put.close_state = true;
|
||||
if(ctx->curl != NULL)
|
||||
{
|
||||
curl_multi_remove_handle(ctx->instance->multi_hd, ctx->curl);
|
||||
@@ -270,11 +271,11 @@ void tango_cache_update_cancel(struct tango_cache_ctx *ctx)
|
||||
//<2F>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6>ϴ<EFBFBD>IDʱ<44><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cancelɾ<6C><C9BE>
|
||||
if(ctx->put.uploadID!=NULL && cache_cancel_upload_minio(ctx))
|
||||
{
|
||||
ctx->put.state = PUT_STATE_USER_CANCEL;
|
||||
ctx->put.state = PUT_STATE_CANCEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
tango_cache_ctx_destroy(ctx, false);
|
||||
tango_cache_ctx_destroy(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
3
cache/src/tango_cache_client_in.h
vendored
3
cache/src/tango_cache_client_in.h
vendored
@@ -40,8 +40,7 @@ enum PUT_OBJECT_STATE
|
||||
PUT_STATE_WAIT_START,
|
||||
PUT_STATE_PART,
|
||||
PUT_STATE_END,
|
||||
PUT_STATE_ERR_CANCEL,
|
||||
PUT_STATE_USER_CANCEL,
|
||||
PUT_STATE_CANCEL,
|
||||
};
|
||||
|
||||
struct easy_string
|
||||
|
||||
9
cache/src/tango_cache_transfer.cpp
vendored
9
cache/src/tango_cache_transfer.cpp
vendored
@@ -380,7 +380,7 @@ void cache_kick_upload_minio_end(struct tango_cache_ctx *ctx)
|
||||
tango_cache_set_fail_state(ctx, CACHE_ERR_CURL);
|
||||
if(cache_cancel_upload_minio(ctx))
|
||||
{
|
||||
ctx->put.state = PUT_STATE_ERR_CANCEL;
|
||||
ctx->put.state = PUT_STATE_CANCEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -439,7 +439,7 @@ void tango_cache_curl_put_done(struct tango_cache_ctx *ctx, CURLcode res, long r
|
||||
{
|
||||
if(cache_cancel_upload_minio(ctx))
|
||||
{
|
||||
ctx->put.state = PUT_STATE_ERR_CANCEL;
|
||||
ctx->put.state = PUT_STATE_CANCEL;
|
||||
}
|
||||
else if(ctx->put.close_state)
|
||||
{
|
||||
@@ -460,15 +460,12 @@ void tango_cache_curl_put_done(struct tango_cache_ctx *ctx, CURLcode res, long r
|
||||
}
|
||||
break;
|
||||
|
||||
case PUT_STATE_ERR_CANCEL: //<2F>ȴ<EFBFBD><C8B4>ر<EFBFBD>
|
||||
case PUT_STATE_CANCEL: //<2F>ȴ<EFBFBD><C8B4>ر<EFBFBD>
|
||||
if(ctx->put.close_state)
|
||||
{
|
||||
tango_cache_ctx_destroy(ctx);
|
||||
}
|
||||
break;
|
||||
case PUT_STATE_USER_CANCEL:
|
||||
tango_cache_ctx_destroy(ctx, false);
|
||||
break;
|
||||
|
||||
case PUT_STATE_END:
|
||||
if(res != CURLE_OK || res_code!=200L)
|
||||
|
||||
Reference in New Issue
Block a user