Fix: repeated return of capacity when OneDrive WebDAV upload canceled

pull/289/head
HFO4 5 years ago
parent 46743f3c1e
commit 8c7d075484

@ -1 +1 @@
Subproject commit 15a7805c2e1dc90a4c92c8165ce44d0f315a5d39 Subproject commit f544486b6ae2440df197630601b1827ed6977c0b

@ -216,9 +216,6 @@ func (client *Client) Upload(ctx context.Context, dst string, size int, file io.
// 因为后面需要错误重试,这里要把分片内容读到内存中 // 因为后面需要错误重试,这里要把分片内容读到内存中
chunkContent := chunkData[:chunkSize] chunkContent := chunkData[:chunkSize]
_, err := io.ReadFull(file, chunkContent) _, err := io.ReadFull(file, chunkContent)
if err != nil {
return err
}
chunk := Chunk{ chunk := Chunk{
Offset: offset, Offset: offset,

@ -506,55 +506,6 @@ func TestClient_Upload(t *testing.T) {
asserts.Error(err) asserts.Error(err)
} }
// 大文件 分两个分片 reader 返回EOF
{
client.Credential.ExpiresIn = time.Now().Add(time.Duration(100) * time.Hour).Unix()
clientMock := ClientMock{}
clientMock.On(
"Request",
"POST",
testMock.Anything,
testMock.Anything,
testMock.Anything,
).Return(&request.Response{
Err: nil,
Response: &http.Response{
StatusCode: 200,
Body: ioutil.NopCloser(strings.NewReader(`{"uploadUrl":"123321"}`)),
},
})
client.Request = clientMock
err := client.Upload(context.Background(), "123.jpg", 15*1024*1024, strings.NewReader("123"))
clientMock.AssertExpectations(t)
asserts.Error(err)
}
// 大文件 分两个分片 失败
{
cache.Set("setting_onedrive_chunk_retries", "0", 0)
client.Credential.ExpiresIn = time.Now().Add(time.Duration(100) * time.Hour).Unix()
clientMock := ClientMock{}
clientMock.On(
"Request",
"POST",
testMock.Anything,
testMock.Anything,
testMock.Anything,
).Return(&request.Response{
Err: nil,
Response: &http.Response{
StatusCode: 200,
Body: ioutil.NopCloser(strings.NewReader(`{"uploadUrl":"123321"}`)),
},
})
client.Request = clientMock
err := client.Upload(context.Background(), "123.jpg", 15*1024*1024, strings.NewReader("123"))
clientMock.AssertExpectations(t)
asserts.Error(err)
}
// 上下文取消 // 上下文取消
{ {
client.Credential.ExpiresIn = time.Now().Add(time.Duration(100) * time.Hour).Unix() client.Credential.ExpiresIn = time.Now().Add(time.Duration(100) * time.Hour).Unix()

Loading…
Cancel
Save