Google Cloud Storage загрузил нечитаемые имена файлов (php)

После некоторых проблем я мог наконец загрузить файлы с google app engine в свое ведро, но теперь имя загруженного файла не читается, как временное имя, зашифровано или что-то вроде этого:

L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5CMlVvQWFjdkRYbWhtY1dPRGc2ZjlkVzRUU0lOV0FFMThWZnAxbUl1MzFVUndLSWdYVTBvdHhyYXl4UWdNOElXWklvX2hkQjdfaHYxbWNvc0dlSEtSQ184enJCU3M4QS5PTW5KWVBiTWdWZTJGdmQ4

Как я могу дать имя, которое я хочу, чтобы загруженный файл ???

Я использую тот же код, который приведен в документации разработчиков Google, например:

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>

Кто-нибудь знает, является ли Amazon S3 более простым и более дружественным к стандарту? Также, если возможно общаться с GAP, я думаю, что я читал, что это возможно, но теперь я не уверен ни в чем, слишком поздно, и мой мозг сожжен 🙁

Заранее спасибо!!

1

Решение

Я заставил это работать, это было легко, я просто что-то не так понял …

Это должно быть сделано в upload_handler.php, очевидно, но … xD. И как говорит Марс с помощью move_uploaded_file или с переименованием. Примерно так (может быть, кому-то полезно):

$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);
1

Другие решения

Других решений пока нет …