使用 wget 或 curl 下载时,VS Code 扩展不起作用

mce*_*nno 4 curl wget unzip visual-studio-code vscode-extensions

在远程计算机上,我尝试使用wgetVS Code 下载扩展。但是,下载的文件总是损坏并且无法使用。事实证明,使用wgetcurl将检索比使用浏览器小一点的文件,因此它们无法解压缩似乎是合理的。我用于下载的网址是https://marketplace.visualstudio.com/_apis/public/gallery/publishers/stkb/vsextensions/rewrap/1.9.1/vspackage

Downloads/tmp >ls -la
total 168
drwxrwxrwx 1 enno enno  4096 Feb  6 08:45 .
drwxrwxrwx 1 enno enno  4096 Feb  6 08:45 ..
-rwxrwxrwx 1 enno enno 85317 Feb  6 08:45 curl.vsix
-rwxrwxrwx 1 enno enno 85317 Feb  6 08:45 wget.vsix
BWP-181WD4:Downloads/tmp >unzip curl.vsix
Archive:  curl.vsix
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  curl.vsix may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of curl.vsix or
        curl.vsix.zip, and cannot find curl.vsix.ZIP, period.

Downloads/tmp >unzip wget.vsix
Archive:  wget.vsix
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  wget.vsix may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of wget.vsix or
        wget.vsix.zip, and cannot find wget.vsix.ZIP, period.
Run Code Online (Sandbox Code Playgroud)

但是,使用浏览器下载的文件效果很好:

BWP-181WD4:Downloads/tmp >unzip ./browser.vsix
Archive:  ./browser.vsix
  inflating: extension.vsixmanifest
  inflating: [Content_Types].xml
  inflating: extension/CHANGELOG.md
  inflating: extension/images/logo.png
  inflating: extension/images/logo.svg
  inflating: extension/package.json
  inflating: extension/README.md
...
Run Code Online (Sandbox Code Playgroud)

怎么会?文件大小明显不同:

Downloads/tmp >ls -la
total 256
drwxrwxrwx 1 enno enno  4096 Feb  6 08:52 .
drwxrwxrwx 1 enno enno  4096 Feb  6 08:50 ..
-rwxrwxrwx 1 enno enno 90035 Feb  6 08:49 browser.vsix
-rwxrwxrwx 1 enno enno 85317 Feb  6 08:45 curl.vsix
-rwxrwxrwx 1 enno enno 85317 Feb  6 08:45 wget.vsix
Run Code Online (Sandbox Code Playgroud)

这是否与如何wget检索curl文件或 Microsoft 如何提供这些文件有关?

rio*_*oV8 6

使用wget和curl下载的文件是gzip文件。

将文件名更改为vspackage.gz并用于gunzip提取 vsix 文件

如果您查看浏览器中的响应标头,您会发现它们是 gzip 压缩的。

找到一种让curl/wget 使用响应头的content-dispositionand的方法。content-encoding