【问题标题】:How to convert CURLOPT_FILE for Google AppEngine?如何为 Google AppEngine 转换 CURLOPT_FILE?
【发布时间】:2014-11-12 18:52:30
【问题描述】:

由于在 Google AppEngine 上不允许 CURL 和文件写入,我需要帮助来转换以下 CURL 请求,以便可以在其上运行:

$ch = curl_init("http://example.com/external.php");
$fp = fopen("internal.php", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);

fclose($fp);
header("Location:internal.php");

【问题讨论】:

    标签: php file google-app-engine curl


    【解决方案1】:

    您需要将文件写入谷歌云存储。所以像

    $in = "http://example.com/external.php";
    $out = "gs://bucket/internal.php";
    
    file_put_contents($out, file_get_contents($in));
    

    【讨论】:

    • 谢谢。它在写入文件时完美运行。但是,我再次从存储桶中运行文件以供公众阅读。我是否需要按照Providing Public Access to Files 中的说明设置公共访问权限?
    • 你知道这是一个非常糟糕的主意,对吧?无论如何,您需要使用 google_app_engine.allow_include_gs_buckets ini 设置来允许从 GCS 执行 php 文件。 cloud.google.com/appengine/docs/php/config/php_ini
    • 我已经用这个设置设置了 php.ini:google_app_engine.allow_include_gs_buckets = "my-app-id-appspot.com"。仍然得到“拒绝访问”。
    • 我发现问题出在我的浏览器上。我已经清除了所有缓存,它现在可以工作了。请允许我发送给您的不是应用程序 ID(而是项目编号,即 445072651661)。这是正在解决的页面:RisingBacklinks。再次感谢 Stuart 的建议。
    猜你喜欢
    • 2023-03-12
    • 2014-01-27
    • 1970-01-01
    • 2010-11-15
    • 2017-07-04
    • 1970-01-01
    • 2012-12-23
    • 2014-09-26
    • 2012-07-15
    相关资源
    最近更新 更多