test(files): live-тест файлового dedup (#63) #65
+11
-2
@@ -243,18 +243,27 @@ func fileopsError(raw json.RawMessage) error {
|
|||||||
func (c *Client) DeleteDavItems(ctx context.Context, folderIDs, fileIDs []string) error {
|
func (c *Client) DeleteDavItems(ctx context.Context, folderIDs, fileIDs []string) error {
|
||||||
body := map[string]any{"DeleteAfter": true, "Immediately": true}
|
body := map[string]any{"DeleteAfter": true, "Immediately": true}
|
||||||
for _, id := range folderIDs {
|
for _, id := range folderIDs {
|
||||||
if _, err := c.deleteJSON(ctx, "/api/2.0/files/folder/"+url.PathEscape(id), body); err != nil {
|
if err := c.deleteDavItem(ctx, "/api/2.0/files/folder/"+url.PathEscape(id), body); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, id := range fileIDs {
|
for _, id := range fileIDs {
|
||||||
if _, err := c.deleteJSON(ctx, "/api/2.0/files/file/"+url.PathEscape(id), body); err != nil {
|
if err := c.deleteDavItem(ctx, "/api/2.0/files/file/"+url.PathEscape(id), body); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deleteDavItem deletes one item, retrying transient 429/502/503/504 answers
|
||||||
|
// through DoRetry like every other bulk path (deletes are idempotent).
|
||||||
|
func (c *Client) deleteDavItem(ctx context.Context, path string, body any) error {
|
||||||
|
return DoRetry(ctx, DefaultRetryPolicy(), func() error {
|
||||||
|
_, err := c.deleteJSON(ctx, path, body)
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// UploadDavFile uploads src (fileName) into folderID, streaming from src.
|
// UploadDavFile uploads src (fileName) into folderID, streaming from src.
|
||||||
//
|
//
|
||||||
// Deprecated: use FileStore.Upload via Client.Files()/Client.FileStore.
|
// Deprecated: use FileStore.Upload via Client.Files()/Client.FileStore.
|
||||||
|
|||||||
Reference in New Issue
Block a user