Нет имени файла при загрузке в Google Cloud Storage в стек переполнения

Я программно загружаю PDF-файлы и хочу установить имя файла. Когда я загружаю файл через POST, свойство имени файла устанавливается автоматически. Однако при использовании метода, приведенного ниже, он переименовывает его примерно как «s9QmBqJPuiVzWbySYvHVRg ==», и имя файла отсутствует.

$gs_file='gs://<bucket-name>/proposal.pdf';
$options = ['gs' => ['Content-Type' => 'application/pdf']];
$ctx = stream_context_create($options);
file_put_contents($gs_file,$content,0,$ctx);

Если я загружаю, затем добавляю .pdf как расширение, он открывается как оригинальный файл pdf, так что сам файл загружен нормально, но это только имя файла и расширение .pdf. Есть ли способ, чтобы файл сохранил свое первоначальное имя файла при загрузке?

Я видел решение к этому, но его в питоне.

Примечание. Я проверяю это в своей локальной среде перед развертыванием. Отличается ли обработка имен файлов при локальном тестировании от прямой трансляции в Google App Engine?

0

Решение

Поэтому я пошел дальше и развернул его, и оказалось, что имя файла обрабатывается по-разному при тестировании его локально и в Google App Engine.

Поэтому, если вы тестируете локально, вы можете проверить, загружен ли объект через GAE Launcher -> SDK Console -> Blobviewer. Обратите внимание, что имя файла будет пустым, а ключ будет набором буквенно-цифровых символов.

Но как только вы развернетесь в GAE и протестируете, файл будет загружен в GCS с правильным именем файла.

0

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

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