(dbx sharedLinkClient, arg *sharing.GetSharedLinkMetadataArg, target string, errOut io.Writer)
| 375 | } |
| 376 | |
| 377 | func downloadSharedLinkToFile(dbx sharedLinkClient, arg *sharing.GetSharedLinkMetadataArg, target string, errOut io.Writer) (string, sharing.IsSharedLinkMetadata, error) { |
| 378 | var dst string |
| 379 | var downloaded sharing.IsSharedLinkMetadata |
| 380 | err := retryWithBackoff(func() error { |
| 381 | link, contents, err := dbx.GetSharedLinkFileContext(currentContext(), arg) |
| 382 | if err != nil { |
| 383 | return err |
| 384 | } |
| 385 | if contents == nil { |
| 386 | return errors.New("shared link download response did not include file content") |
| 387 | } |
| 388 | defer func() { _ = contents.Close() }() |
| 389 | |
| 390 | dst, err = sharedLinkDownloadTarget(target, link) |
| 391 | if err != nil { |
| 392 | return err |
| 393 | } |
| 394 | downloaded = link |
| 395 | |
| 396 | return copySharedLinkContentToFile(contents, sharedLinkDownloadSize(link), dst, errOut) |
| 397 | }) |
| 398 | return dst, downloaded, err |
| 399 | } |
| 400 | |
| 401 | func downloadSharedLinkToStdout(dbx sharedLinkClient, arg *sharing.GetSharedLinkMetadataArg, w io.Writer) error { |
| 402 | ignoreBrokenPipeSignal() |
no test coverage detected