2017-08-03 1 views
1

Je suis en train de définir l'expiration à l'URL, mais pour une raison quelconque, il ne fonctionne pas comme prévu et l'URL reste en vie, même après l'expiration est passéedéfinissant l'expiration s3 signé Url

code php

$object = 'uploads/496c53309bac48e4d65f55d9d66c0ac0.txt'; 
$url = $s3->getObjectUrl($config['s3']['bucket'], $object, '10 seconds'); 

code html

<body> 

<a href="<?php echo $url; ?>">Download Link</a> 

</body> 

J'utilise AWS SDK 2.7.5

Répondre

1

« getObjectUr Je vais seulement créer une URL S3 régulière et cela ne prend que deux arguments.

Pour utiliser les URL presigned, nécessite un peu plus que par le SDK documentation

// Get a command object from the client and pass in any options 
// available in the GetObject command (e.g. ResponseContentDisposition) 
$command = $client->getCommand('GetObject', array(
    'Bucket' => $bucket, 
    'Key' => 'data.txt', 
    'ResponseContentDisposition' => 'attachment; filename="data.txt"' 
)); 

// Create a signed URL from the command object that will last for 
// 10 minutes from the current time 
$signedUrl = $command->createPresignedUrl('+10 minutes'); 

echo file_get_contents($signedUrl); 
// > Hello!