gpt4 book ai didi

google-app-engine - 为 PHP7.2 创建 Google Cloud Storage 上传 URL

转载 作者:行者123 更新时间:2023-12-02 03:26:11 26 4
gpt4 key购买 nike

我觉得我在这里遗漏了一些东西,但是在标准环境中使用 PHP 5.5 的 Google App Engine 上,我可以非常轻松地创建上传 URL,以便我的用户上传文件,而无需在 PHP 中浪费时间,如下所示:

<?php
use google/appengine/api/cloud_storage/CloudStorageTools;

?><form action="<?php echo CloudStorageTools::createUploadUrl('my/upload/handler.php'); ?>" method="post">
<input type="file" name="file" />
<input type="submit" value="Upload" />
</form>

当然大大简化了(因为该 URL 只会持续 60 秒)。

但是,这个 API 似乎不适用于运行 PHP 7.2 的应用程序引擎,而我确实需要使用它,而且我似乎找不到用于获取上传 URL 的备用 API;这些真的已经停产了吗?

还有其他非常有用的功能,例如用于获取缩略图等的 getImageURL() 。当然,很多文档仍然指向上述用于处理用户上传到应用程序引擎网站的方法!

那么如何在较新的 API 中创建和使用上传 URL?

最佳答案

是的,您可以使用 PHP 7.2 Google Client Library 创建和使用上传 URL用于云存储。

您可以直接将处理程序放在表单的action属性中,而无需调用API。

请注意,在此示例中,您将要在其中上传文件的存储桶的名称作为 app.yaml 文件中的环境变量:

runtime: php72
env_variables:
GOOGLE_STORAGE_BUCKET: <your_bucket_name>

index.php:

<?php

namespace Google\Cloud\Samples\AppEngine\Storage;

use Google\Auth\Credentials\GCECredentials;

require_once __DIR__ . '/vendor/autoload.php';

$bucketName = getenv('GOOGLE_STORAGE_BUCKET');
$projectId = getenv('GOOGLE_CLOUD_PROJECT');
$defaultBucketName = sprintf('%s.appspot.com', $projectId);

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
switch ($_SERVER['REQUEST_URI']){

case '/user/upload':
upload_file($bucketName);
exit;
}
header('Location: /');
exit;
}
?>

<html>
<form action="/user/upload" enctype="multipart/form-data" method="post">
Files to upload: <br>
<input type="file" name="uploaded_files" size="40">
<input type="submit" value="Send">
</form>
</html>

处理函数:

function upload_file($bucketName)
{
$fileName = $_FILES['uploaded_files']['name'];
$tempName = $_FILES['uploaded_files']['tmp_name'];
move_uploaded_file($tempName, "gs://${bucketName}/${fileName}.txt");
sprintf('Your file "%s" has been uploaded.', $fileName);
}

composer.json:

{
"require": {
"google/cloud-storage": "^1.5"
},
"require-dev": {
"phpunit/phpunit": "^5",
"google/cloud-tools": "^0.6"
}
}

我建议您从 Github 克隆示例并亲自尝试。

关于google-app-engine - 为 PHP7.2 创建 Google Cloud Storage 上传 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53346083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com