谷歌云存储上传了无法读取的文件名(php)


Google Cloud Storage uploaded unreadable filesnames (php)

遇到一些问题后,我终于可以用谷歌应用程序引擎将文件上传到我的bucket中,但现在上传文件的名称无法读取,比如临时名称,加密的或类似的东西:

L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVvQWFjdkRYbWhtY1dPRGc2ZjlkVzRUU0lOV0FFMThWZnAxbUl1MzFVUndLSWdYVTBvdHhyYX4UWdNOelXWklvX2hkQjdfaHYxbWNvc0dlSEtSQ184enJCU3M4QS5PTW5KWVBiTWdWZTJGdmQ4

如何为上传的文件提供我想要的名称???

我使用的代码与谷歌开发者文档中给出的代码相同,如下所示:

require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google'appengine'api'cloud_storage'CloudStorageTools;
$options = [ 'gs_bucket_name' => 'my_bucket' ];
$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>

有人知道亚马逊的S3是否更简单、更标准吗?此外,如果它可以与GAP通信,我想我读到它是可能的,但现在我什么都不确定,太晚了,我的大脑被烧坏了:(

提前感谢!!

我做到了,这很容易,我只是误解了一些。。。

它必须在upload_handler.php中完成,这是显而易见的,但。。。xD。正如Mars用move_uploaded_file或rename所说。像这样的东西(可能对某人有用):

$gs_tmpName = $_FILES["myfile"]['tmp_name'];
$ext = strrchr($gs_name, ".");
$desired_name = "<desired_name>$ext";
$desired_name = mb_convert_encoding($desired_name, "UTF-8", "AUTO");
$desired_name = urlencode($desired_name);
$options = array('gs'=>array('acl'=>'public-read','Content-Type' => $_FILES['myfile']['type']));
$ctx = stream_context_create($options);
rename($gs_tmpName, "gs://<bucket_name>/".$desired_name, $ctx);
$publicUrl = CloudStorageTools::getPublicUrl('gs://<bucket_name>/'.$desired_name , true);