Оболочка потока Amazon S3 «позволяет хранить и извлекать данные из Amazon S3 с помощью встроенных функций PHP, таких как file_get_contents, fopen, копировать, переименовывать, unlink, mkdir и rmdir ... Это позволяет получить доступ к корзинам и объектам, хранящимся в Amazon S3, с помощью протокола s3://. Оболочка потока S3 принимает строки, содержащие имя сегмента, за которым следует косая черта и необязательный ключ или префикс объекта: s3://bucket[/key-or-prefix]."
Обратите внимание, что список функций не включает move_uploaded_file. Я модифицирую существующий код для поддержки S3, и существующий код использует move_uploaded_file для перемещения загруженного файла в его постоянное местоположение. Я не изменил этот код; Я просто указываю s3://my-bucket/file-key в качестве аргумента to для move_uploaded_file. (Таким образом, вызов выглядит примерно так: move_uploaded_file("/tmp/phpQ6IijD","s3://my-bucket/cabbc0ad015b8a7038925ae4b4a6335e").
должен возвращать true в случае успеха и false, если аргумент from не является допустимым файлом загрузки или не может быть перемещен по какой-либо причине. move_uploaded_file("/tmp/phpQ6IijD","s3://my-bucket/cabbc0ad015b8a7038925ae4b4a6335e") возвращает true. Я проверил каталог /tmp. Файла нет. Однако этого файла тоже нет в моей корзине S3. Похоже, что move_uploaded_file вернул ложное срабатывание и, возможно, также что оболочка потока S3 не применяется к move_uploaded_file. Я также проверил папку, в которой находится код, чтобы увидеть, был ли файл переименован в «s3://my-bucket/cabbc0ad015b8a7038925ae4b4a6335e», и, по-видимому, это тоже не так.
Что такое на самом деле здесь происходит? Не применяется ли оболочка потока S3 к move_uploaded_file? Если нет, то какой минимальный код необходим для его замены?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... am-wrapper