Я загружаю файл, используя boto3, как это:
client = boto3.client('s3',
aws_access_key_id = id,
aws_secret_access_key = key
client.upload_file('tmp/test.pdf', 'bucketname', 'test.pdf')
Затем я генерирую ссылку для скачивания, используя generate_presigned_url
url = client.generate_presigned_url(
ClientMethod = 'get_object',
Params = {
'Bucket': 'bucketname',
'key': <randomhash>
}
)
Когда я скачиваю файл по ссылке, он назван в честь ключа, который является случайным уникальным хешем - без расширения - я хочу дать ему конкретное имя файла с расширением. Как я могу это сделать?
Редактировать: я понимаю, что могу использовать имя файла в качестве ключа, но моя проблема с этим методом заключается в том, что если пользователи загружают подобные имена файлов, URL будет ссылаться только на неправильные / самые последние файлы. Вот почему я предпочитаю использовать уникальный хэш.
Единственным недостатком использования уникального хеша является то, что мое имя файла для загрузки становится длинным хешем вместо имени, которое я дал ему при загрузке.