Utilisation du SDK AWS pour PHP 3.x : obtenez les derniers objets d'un compartiment S3 selon l'heure de la dernière modification.
P粉262113569
P粉262113569 2023-07-28 11:50:32
0
1
541
<p>J'essaie d'obtenir le dernier objet d'un compartiment selon l'heure de la dernière modification à l'aide du SDK AWS pour PHP 3.x. </p> <p>J'ai vu comment utiliser l'AWS CLI pour obtenir cette fonctionnalité. Ici : </p> <ul> <li>Obtenir le dernier objet du compartiment S3 avant l'heure de la dernière modification</li> <li>Obtenez le dernier objet modifié de S3 à l'aide de l'AWS CLI</li> </ul> <p>Mais je ne sais pas comment utiliser le SDK PHP pour implémenter cette fonction. </p> <pre class="brush:php;toolbar:false;">$S3Client = new AwsS3S3Client([ 'version' => 'dernière', 'region' => 'eu-west-3', 'informations d'identification' => 'clé' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx', ] ]); $startTime = strtotime('-5 minutes'); $res = $S3Client->ListObjectsV2([ 'Bucket' => 'mon-bucket', 'Préfixe' => 'objets/', 'DébutAprès' => $startTime ]) ≪/pré> <p>J'utilise la méthode ListObjectsV2 recommandée. </p><p>J'ai trois questions. </p><p><br /></p> <ol> <li><p>Comment dois-je trier les résultats par LastModified ? (Tout comme vous pouvez le faire dans la CLI)</p> ≪/li> <li><p>J'ai certaines politiques de cycle de vie qui affectent mes recherches car j'obtiens des résultats qui sont déplacés vers des objets stockés GLACIER, ce que je ne souhaite pas. </p> ≪/li> <li><p>Je souhaite obtenir les balises et les métadonnées d'un objet. Comment dois-je l'obtenir ? Voulez-vous utiliser les attributs d'objet x-amz-optional-object ? comment utiliser? </p> ≪/li> </ol> <p>D'ailleurs, l'utilisation du paramètre StartAfter ne semble rien changer. </p>
P粉262113569
P粉262113569

répondre à tous(1)
P粉068486220

  • Vous devez implémenter cette logique de tri dans votre code, S3Client/AWS ne prend pas en charge cette fonctionnalité par défaut. Cela signifie également que vous devez répertorier tous les objets (pas seulement les 1 000 premiers) avant de pouvoir les trier pour trouver l'objet le plus récent.
  • La propriété StorageClass est incluse dans les résultats et vous pouvez/devez filtrer les résultats avant de les trier ou de les traiter davantage.
  • Cela n'est pas possible simplement en listant les actions. Vous devez soumettre une demande GetObject distincte pour chaque objet qui vous intéresse. Si vous souhaitez obtenir des métadonnées pour des milliers d'objets simultanément, vous devrez repenser votre approche et probablement stocker ces données dans une base de données interrogeable/recherchable appropriée.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal