Fix: repeated return of capacity when OneDrive WebDAV upload canceled
This commit is contained in:
parent
46743f3c1e
commit
8c7d075484
3 changed files with 1 additions and 53 deletions
2
assets
2
assets
|
@ -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…
Add table
Reference in a new issue