【问题标题】:How to use base64 encoded image as an argument?如何使用 base64 编码的图像作为参数?
【发布时间】:2019-03-28 09:48:17
【问题描述】:

我在运行程序时尝试使用图像的 base64 编码作为标志。我回来了:参数列表太长

我在 Mac 上使用 Ubuntu 16.04 Docker 映像。

$ ./myProgram -input "/9j/4AAQSkZJRgABA [...]"

【问题讨论】:

  • 这可能对你有帮助:stackoverflow.com/questions/19354870/…
  • 图像不能大于 96kb (Linux) 或 192kb (mac),因为这会将 base64 编码为 128kb/256kb 的参数限制
  • 你可以通过标准输入来读取它吗?这样可以避免参数大小的任何问题。
  • 将其保存到磁盘并传递路径

标签: shell docker ubuntu command-line-arguments


【解决方案1】:

我建议您从标准中阅读它,而不是接受它作为参数。

$ base64 someImage.jpg | ./myProgram

如果这个程序是一个shell脚本,你可以将标准保存到一个变量中,如下所示:

#!/bin/sh

MY_BASE64_IMAGE_INPUT=$(cat -)
# do something with that info
echo $MY_BASE64_IMAGE_INPUT

【讨论】:

    【解决方案2】:

    单个命令有长度限制。这是您的程序... 以各种方式将文件名作为参数发送给您的程序应该更容易,然后程序将从文件中读取所需的信息。您可以将文件的内容转换为变量(如果您真的希望它作为变量)。如果您通过标准输入流将文件的内容传递给您的程序,这可能更传统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 2011-01-31
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 2011-04-27
      相关资源
      最近更新 更多