É necessário restaurar objetos Archive, Cold Archive e Deep Cold Archive antes de lê-los. Este tópico descreve como restaurar objetos Archive e Cold Archive.
Observações
Apenas objetos Archive, Cold Archive e Deep Cold Archive aceitam a operação RestoreObject.
Este tópico usa o endpoint público da região China (Hangzhou). Para acessar o OSS por meio de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter detalhes sobre regiões e endpoints compatíveis, consulte Regiões e endpoints.
Os exemplos a seguir mostram como crie uma instância OSSClient com um endpoint do OSS. Para outras configurações, como uso de domínio personalizado ou autenticação com credenciais do Security Token Service (STS), consulte Criar um OssClient.
Para restaurar um arquivo, você precisa da permissão
oss:RestoreObject. Para mais informações, consulte Conceder permissões personalizadas a um usuário RAM.
Restaurar um objeto Archive
O código a seguir mostra como restaurar um objeto Archive:
<?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 this 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 the China (Hangzhou) region. Replace it with the actual Endpoint.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Specify the bucket name. Example: examplebucket.
$bucket= "examplebucket";
// Specify the full path of the Archive object. Do not include the bucket name. Example: srcexampleobject.txt.
$object = "srcexampleobject.txt";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Restore the file.
$ossClient->restoreObject($bucket, $object);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
Restaurar um objeto Cold Archive
O código a seguir mostra como restaurar um objeto Cold Archive:
<?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;
use OSS\Model\RestoreConfig;
// Obtain access credentials from environment variables. Before you run this 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 the China (Hangzhou) region. Replace it with the actual Endpoint.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Specify the bucket name. Example: examplebucket.
$bucket= "examplebucket";
// Specify the full path of the Cold Archive object. Do not include the bucket name. Example: srcexampleobject.txt.
$object = "srcexampleobject.txt";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// The number of days for which the object remains in the restored state. Valid values: 1 to 7.
$day = 3;
// The restoration priority. This is set to Bulk, which means the object is restored within 5 to 12 hours.
// To restore the object within 2 to 5 hours, set this parameter to Standard. To restore the object within 1 hour, set this parameter to Expedited.
$tier = "Bulk";
$config = new RestoreConfig($day,$tier);
$options = array(
OssClient::OSS_RESTORE_CONFIG => $config
);
$result = $ossClient->restoreObject($bucket, $object,$options);
} catch (OssException $e) {
printf($e->getMessage() . "\n");
return;
}
Referências
Para mais informações sobre a operação de API usada para restaurar arquivos Archive e Cold Archive, consulte RestoreObject.