Я создал простой файловый браузер в PHP, который связывает файлы с URL-адресами с истекающим сроком действия. Таким образом, для каждого доступа к каталогу создается ссылка на каждый файл, который действителен, скажем, 900 секунд.
У меня сейчас проблема в том, что сгенерированные подписи иногда кажутся ошибочными. Что странно, поскольку я специально использовал внешние библиотеки S3 для генерации URL-адресов и подписей.
На самом деле, я попробовал следующие библиотеки для генерации подписей:
Библиотеки внутренне используют hash_hmac ('sha256', ... или hash_hmac ('sha1', ... - я также не понимаю, почему используются алгоритмы хеширования по-разному.
Так как проблема одинакова для всех библиотек, она также может быть в моем коде генерации URL, что довольно просто:
$bucket = "myBucket";
$filename = $object->Key;
$linksValidForSeconds = 900;
$url = $s3->get_object_url($bucket, $filename, $linksValidForSeconds);
Sp $ bucket и $ linksValidForSeconds являются постоянными, $ filename - например, "Media / Pictures / My Picture.png". Но событие для тех же переменных иногда срабатывает, иногда - нет.
Есть идеи?
Редактировать: Исправлено опечатка / неверное имя константы (спасибо)