Php 将图像文件上载到谷歌云存储
我试图按照谷歌云存储文档将一个图像文件上传到谷歌云存储,但没有成功 我在谷歌云存储中创建的bucket名为:test_app-111 这是我的app.yaml文件:Php 将图像文件上载到谷歌云存储,php,google-app-engine,google-cloud-storage,image-upload,Php,Google App Engine,Google Cloud Storage,Image Upload,我试图按照谷歌云存储文档将一个图像文件上传到谷歌云存储,但没有成功 我在谷歌云存储中创建的bucket名为:test_app-111 这是我的app.yaml文件: application: test_app-111 version: 1 runtime: php api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 up
application: test_app-111
version: 1
runtime: php
api_version: 1
handlers:
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
static_files: \1
upload: .+\.(gif|png|jpg)$
application_readable: true
- url: /img.php
script: img.php
这是我的php文件,名为img.php:
<?php
require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;
$options = [ 'gs_bucket_name' => 'https://storage.googleapis.com/test_app-111.appspot.com' ];
$upload_url = CloudStorageTools::createUploadUrl('/upload_handler.php', $options);
?>
<form action="<?php echo $upload_url?>" enctype="multipart/form-data" method="post">
Files to upload: <br>
<input type="file" name="uploaded_files" size="40">
<input type="submit" value="Send">
</form>
gs_bucket_name应该设置为您的bucket name,而不是完整的url,即
$options = [ 'gs_bucket_name' => 'test_app-111.appspot.com' ];
您还可以使用CloudStorageTools::getDefaultGoogleStorageBucketName()
检索默认的存储桶名称,而不是在其中硬编码。您会遇到什么错误?我使用SDK运行它。我打开chrome,然后我选择一个图像按上传…没有显示,得到一个没有任何错误的空白页。在谷歌云存储中检查我的存储桶时,存储桶中没有图像。您的存储桶名称应该类似:https://storage.googleapis.com/test_app-111.appspot.com
删除gs_bucket_name
参数,它应该上传到您的默认bucket中。确保您有权限写入该bucket:另外,尝试从那里部署和上传。在本地尝试时可能存在权限问题。我更改了bucket名称,正如您在我的代码中看到的,但仍然没有更改。如果我去我的谷歌云存储并看到我的bucket,我可以手动上传文件或从控制台删除