【问题标题】:Does HttpClient.PostAsync overwrite existing file? [closed]HttpClient.PostAsync 会覆盖现有文件吗? [关闭]
【发布时间】:2020-09-22 21:02:09
【问题描述】:

我正在开发一个 API,它需要从服务器 A 下载文件并将其上传到同一网络中的服务器 B。它是供内部使用的。每个文件都有多个版本,需要多次上传到服务器 B,并且同一文件的所有版本将共享相同的文件名。这是我第一次处理文件操作,所以如果我的问题听起来很无知,请告诉我。我可以在这项工作中使用 HttpClient.PostAsync 作为上传部分吗?或者如果可以直接复制,我可以只使用 Stream.CopyToAsync 吗?谢谢!

【问题讨论】:

  • 没有。将使用临时文件/文件夹。可能有后端实现会覆盖...取决于他们在复制时如何命名文件以及他们是否真的想要这种行为。
  • PostAsync 不会覆盖任何东西......它甚至没有写任何东西开始(如果您将文件作为源发送,它可能会读取文件)......目前还不清楚你正在问-也许您希望所有处理任何要求它们创建某种文件的 POST 请求的服务器都有一些正式定义的行为?请尝试edit 发帖澄清...

标签: c# .net asp.net-core asp.net-web-api dotnet-httpclient


【解决方案1】:

HttpClient.PostAsync 与此无关。它背后的实施将完成这项工作。如果后端不支持,那你就做不到。

HttpClient.PostAsync 的调用者是这里的客户,你在这里无事可做。如果您可以访问此服务的后端代码,则可以更改代码的行为。

【讨论】:

  • 您的意思是覆盖文件?我只是问如果使用 HttpClient.PostAsync 上传同名文件会发生什么。我没有说我预计会发生覆盖。
  • 这与后端实现完全相关。我们不知道
猜你喜欢
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 2021-04-28
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多