Skip to content

使用Custom类型连接shell上传文件时,无法判断当前文件是否该追加还是覆盖 #358

@R1chCat

Description

@R1chCat
  • 我确定这是蚁剑本身的一个 Bug,我并不是在询问如何使用蚁剑
  • 我确定已经将蚁剑升级至软件发布页面中的最新版
  • 我已经阅读过蚁剑的开发文档,并且尝试过自己通过Google等方式解决问题
  • 这是一个新功能的建议
  • 我查阅了文档没找到解决方案,所以来询问如何使用蚁剑

报告 Bug

  • 我使用的操作系统是 macOS 10+
  • 我使用的操作系统是 Debian/Ubuntu GNU/Linux
  • 我使用的操作系统是 Fedora GNU/Linux
  • 我使用的操作系统是 Arch GNU/Linux
  • 我使用的操作系统是 Other GNU/Linux
  • 我使用的操作系统是 Windows 10+

  • 我使用的是 32 位操作系统
  • 我使用的是 64 位操作系统

BUG

BUG描述


当使用Custom类型的shell上传文件时,参数如下

'z1': '#{path}',
'z2': '#{buffer::content}'

被上传文件长度只需要一次上传时和需要分批次上传时的参数一样,遇到以下场景时无法判断是该追加内容还是覆盖内容到服务器上的文件:

## 场景1
服务器文件:
    1.data
被上传文件:
    1.data 长度 1kb

## 场景2
服务器文件:
    1.data
被上传文件:
    1.data 长度 10mb

antsword在处理场景1时只发送一个请求,只需进行覆盖操作即可完成上传
antsword在处理场景2时会发送多个请求,需要进行追加操作,你无法仅通过z1z2两个参数来判断当前上传文件的操作是多个请求还是一个请求,所以无法判断是进行覆盖还是追加操作,这就导致后端只能进行追加操作,如果服务器文件不存在时这样没有问题,如果存在时则会导致上传的内容是在原有文件上追加之后的内容

BUG解决方案

这个问题的本质是antsword的文件上传操作的无状态导致后端无法判断哪次请求是第一次请求(只有第一次请求需要覆盖操作)

所以可以添加一个z3参数不管是bool或者int(当前上传文件次数)能判断当前请求是第一个上传请求就都可以达到目的

最后

感谢师傅的维护🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions