无法使用错误从linux服务器上的firebase存储下载文件

无法使用错误从linux服务器上的firebase存储下载文件,linux,bash,curl,linux-kernel,segmentation-fault,Linux,Bash,Curl,Linux Kernel,Segmentation Fault,问题: Firebase存储不允许访问Linux服务器上的文件,这很奇怪 当我运行命令curl时,它的响应如下: { "error": { "code": 403, "message": "Permission denied. Could not perform this operation" } } 我的Firebase存储规则正常 我试过什么? 另外,当我在浏览器中打开下载URL时,它会自动启动文件下载 只是为了确保我的服务器代码是正确的 我使用下载的文件运行了一个

问题:

Firebase存储不允许访问Linux服务器上的文件,这很奇怪

当我运行命令
curl
时,它的响应如下:

{
  "error": {
    "code": 403,
    "message": "Permission denied. Could not perform this operation"
  }
}
我的Firebase存储规则正常

我试过什么?

另外,当我在浏览器中打开下载URL时,它会自动启动文件下载

只是为了确保我的服务器代码是正确的 我使用下载的文件运行了一个测试,没有问题

如果您了解Firebase存储的这种行为,请发表评论


请求的数据

这是我正在尝试的url=>

新问题

在应用Robsiemb的建议后,403就不存在了 但是目的还是没有达到

还有一件事我忘了提一下,我是通过sh文件执行命令的,它是通过一个php文件执行的,我注意到还有一件事,它给出了一个称为“segmentation fault”的错误

我在谷歌上搜索了一下,但在我的代码中找不到任何错误

当我通过终端执行sh文件时,它工作正常,但当我通过php文件执行它时,它失败了

我一定是一开始就把这些都说了 我以为这是个正常的问题 但这是相当深刻的

感谢您的意见和建议:)
请提供帮助

您可能需要引用传递给curl的URL,因为其中包含shell特殊字符(特别是“?”和“&”)

e、 g


如果没有引号,shell可能会删除&(包括身份验证令牌)之后的所有内容,因此您的权限被拒绝。

我已经复制了您的问题,可以毫无问题地下载文件。这是我的代码:

<?php
$output = shell_exec("curl '<your_file_url>' -o <destination_file>");

创建Firebase项目时,将创建一个GCP项目并链接到Firebase项目。
这意味着,无论何时在Firebase上创建一个bucket,您都将拥有相同的bucket以及GCP项目中的所有数据

知道了这一点,我复制了您的问题,我得到了相同的错误403(我注意到这是因为Firebase中的身份验证规则),然后我更改了规则,它工作了

在您的情况下,您应该按照以下文档为您的请求设置特定的标题:


我的firebase存储规则没有问题
-我不确定,发布你的规则当你使用下载URL访问文件时,你绕过了安全规则,所以这不是原因。@HarKal:请编辑你的问题,以包含一个对你不起作用的实际URL。@FrankvanPuffelen先生,请帮助。该文件仅在我手动发出命令时下载,但当机器使用bash文件执行指令时,它不会下载该文件。该文件会给出相同的错误,并将其保存到我希望它下载的文件中,如“sudo curl-o”,因此它会将上述403错误响应保存到该文件中。当我尝试“更多文件名”时,它告诉我这背后的原因是什么?文件链接似乎很好,所以问题可能出在代码中。如果看不到这一点,就很难说得更多。尽管如此,我还是强烈建议您阅读该链接,因为它包含了许多关于如何确保我们能够真正帮助您解决您遇到的问题的提示。根据上面Frank的评论,请包括您在问题中使用的实际url和命令。sry bro这件事起到了作用,但仍然没有按照预期进行。通过在url周围加引号,这个错误就消失了。查看编辑,如果你知道一些东西,请发表评论Hey@HarKal,然后你能给我提供Php版本和确切的错误消息吗?我使用的是PHP7,Php代码中不会出现错误。一切顺利。我认为错误在thabash文件中,它给出了“分段错误”,让我试试。给我点时间。我会再打给你的,顺便说一句,谢谢
<?php
$output = shell_exec("curl '<your_file_url>' -o <destination_file>");
curl -H "Authorization: Bearer ACCESS_TOKEN" "https://www.googleapis.com/storage/v1/b/example-bucket/o"