PHP AWS S3 SDK: Как создать предварительно подписанный URL для загрузки файла в папку в корзине S3 с помощью PHP? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь создать предварительно подписанный URL для загрузки файла в папку в корзине S3 с использованием PHP.Я могу сгенерировать URL для загрузки в корзину, но не могу понять, где упомянуть имя папки.Ниже приведен мой код.

$object = 'test_103.jpg';
$bucket = $config['s3_input']['bucket'];
$expiry = new DateTime('+10 minutes');

$command = $s3_input->getCommand(
      'PutObject',
      [
          'Bucket' => $bucket,
          'Key' => $object
      ]
  );
$signedRequest = $s3_input->createPresignedRequest($command,'+10 minutes');
$signedUploadUrl = $signedRequest->getUri();

echo $signedUploadUrl;

В приведенном выше коде как передать имя папки, в которой я хочу создать предварительно подписанный URL-адрес?

1 Ответ

0 голосов
/ 09 мая 2019

S3 не имеет иерархической структуры / структуры каталогов, так что имейте это в виду, становится важным, когда позже вы захотите «переместить» или «переименовать» «папку» на S3

https://serverfault.com/questions/435827/what-is-the-difference-between-buckets-and-folders-in-amazon-s3

Прямой ответ на ваш вопрос: добавьте косую черту "/" в ваш "Ключ", чтобы добиться желаемого эффекта

Также из документа

$commands[] = $s3Client->getCommand('PutObject', array(
    'Bucket' => 'SOME_BUCKET',
    'Key'    => 'photos/photo01.jpg',
    'Body'   => fopen('/tmp/photo01.jpg', 'r'),
));
...