Par défaut, un appel à l'opération GetObject sur un bucket avec versioning activé renvoie uniquement la version actuelle d'un objet.
Précautions
Cette rubrique utilise le point de terminaison public de la région Chine (Hangzhou). Pour accéder à OSS depuis d'autres services Alibaba Cloud dans la même région, utilisez un point de terminaison interne. Pour plus d'informations sur les régions et points de terminaison pris en charge, consultez Régions et points de terminaison.
Cette rubrique explique comment créer une instance OSSClient avec un endpoint OSS. Pour d'autres configurations, telles que l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants du Security Token Service (STS), consultez Créer un OssClient.
Pour télécharger un fichier, vous devez disposer de l'autorisation
oss:GetObject. Pour plus d'informations, consultez Accorder des autorisations personnalisées à un utilisateur RAM.
Informations contextuelles
Lorsque vous appelez l'opération GetObject sur un bucket, l'un des trois scénarios suivants se produit :
Si la version actuelle de l'objet dans le bucket est un marqueur de suppression, OSS renvoie l'erreur 404 Not Found.
Si vous spécifiez l'ID de version d'un objet dans un paramètre de requête, OSS renvoie cette version de l'objet. Si vous définissez l'ID de version sur « null », OSS renvoie la version de l'objet dont l'ID de version est « null ».
Si vous tentez de récupérer un marqueur de suppression en spécifiant son ID de version, OSS renvoie l'erreur 405 Method Not Allowed.
Exemple de code
Le code suivant montre comment télécharger un fichier :
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
$provider = new EnvironmentVariableCredentialsProvider();
// The endpoint is set to China (Hangzhou) in this example. Set the endpoint to the one for your region.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";
// Specify the full path of the object. The full path does not include the bucket name. Example: example/test.txt.
$object = "<yourObjectName>";
// Specify the version ID of the object.
$versionId = "<yourObjectVersionId>";
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
try{
// Download the object of the specified version.
$content = $ossClient->getObject($bucket, $object, array(OssClient::OSS_VERSION_ID => $versionId));
print($content);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
Pour plus d'informations, consultez GetObject.