GlacierClient.php
6.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/**
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
namespace Aws\Glacier;
use Aws\Common\Client\AbstractClient;
use Aws\Common\Client\ClientBuilder;
use Aws\Common\Client\UploadBodyListener;
use Aws\Common\Enum\ClientOptions as Options;
use Aws\Common\Exception\Parser\JsonRestExceptionParser;
use Guzzle\Common\Collection;
use Guzzle\Service\Resource\Model;
use Guzzle\Service\Resource\ResourceIteratorInterface;
/**
* Client to interact with Amazon Glacier
*
* @method Model abortMultipartUpload(array $args = array()) {@command Glacier AbortMultipartUpload}
* @method Model abortVaultLock(array $args = array()) {@command Glacier AbortVaultLock}
* @method Model addTagsToVault(array $args = array()) {@command Glacier AddTagsToVault}
* @method Model completeMultipartUpload(array $args = array()) {@command Glacier CompleteMultipartUpload}
* @method Model completeVaultLock(array $args = array()) {@command Glacier CompleteVaultLock}
* @method Model createVault(array $args = array()) {@command Glacier CreateVault}
* @method Model deleteArchive(array $args = array()) {@command Glacier DeleteArchive}
* @method Model deleteVault(array $args = array()) {@command Glacier DeleteVault}
* @method Model deleteVaultAccessPolicy(array $args = array()) {@command Glacier DeleteVaultAccessPolicy}
* @method Model deleteVaultNotifications(array $args = array()) {@command Glacier DeleteVaultNotifications}
* @method Model describeJob(array $args = array()) {@command Glacier DescribeJob}
* @method Model describeVault(array $args = array()) {@command Glacier DescribeVault}
* @method Model getDataRetrievalPolicy(array $args = array()) {@command Glacier GetDataRetrievalPolicy}
* @method Model getJobOutput(array $args = array()) {@command Glacier GetJobOutput}
* @method Model getVaultAccessPolicy(array $args = array()) {@command Glacier GetVaultAccessPolicy}
* @method Model getVaultLock(array $args = array()) {@command Glacier GetVaultLock}
* @method Model getVaultNotifications(array $args = array()) {@command Glacier GetVaultNotifications}
* @method Model initiateJob(array $args = array()) {@command Glacier InitiateJob}
* @method Model initiateMultipartUpload(array $args = array()) {@command Glacier InitiateMultipartUpload}
* @method Model initiateVaultLock(array $args = array()) {@command Glacier InitiateVaultLock}
* @method Model listJobs(array $args = array()) {@command Glacier ListJobs}
* @method Model listMultipartUploads(array $args = array()) {@command Glacier ListMultipartUploads}
* @method Model listParts(array $args = array()) {@command Glacier ListParts}
* @method Model listTagsForVault(array $args = array()) {@command Glacier ListTagsForVault}
* @method Model listVaults(array $args = array()) {@command Glacier ListVaults}
* @method Model removeTagsFromVault(array $args = array()) {@command Glacier RemoveTagsFromVault}
* @method Model setDataRetrievalPolicy(array $args = array()) {@command Glacier SetDataRetrievalPolicy}
* @method Model setVaultAccessPolicy(array $args = array()) {@command Glacier SetVaultAccessPolicy}
* @method Model setVaultNotifications(array $args = array()) {@command Glacier SetVaultNotifications}
* @method Model uploadArchive(array $args = array()) {@command Glacier UploadArchive}
* @method Model uploadMultipartPart(array $args = array()) {@command Glacier UploadMultipartPart}
* @method waitUntilVaultExists(array $input) The input array uses the parameters of the DescribeVault operation and waiter specific settings
* @method waitUntilVaultNotExists(array $input) The input array uses the parameters of the DescribeVault operation and waiter specific settings
* @method ResourceIteratorInterface getListJobsIterator(array $args = array()) The input array uses the parameters of the ListJobs operation
* @method ResourceIteratorInterface getListMultipartUploadsIterator(array $args = array()) The input array uses the parameters of the ListMultipartUploads operation
* @method ResourceIteratorInterface getListPartsIterator(array $args = array()) The input array uses the parameters of the ListParts operation
* @method ResourceIteratorInterface getListVaultsIterator(array $args = array()) The input array uses the parameters of the ListVaults operation
*
* @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-glacier.html User guide
* @link http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.Glacier.GlacierClient.html API docs
*/
class GlacierClient extends AbstractClient
{
const LATEST_API_VERSION = '2012-06-01';
/**
* Factory method to create a new Amazon Glacier client using an array of configuration options.
*
* @param array|Collection $config Client configuration data
*
* @return GlacierClient
* @link http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options
*/
public static function factory($config = array())
{
// Setup the Glacier client
$client = ClientBuilder::factory(__NAMESPACE__)
->setConfig($config)
->setConfigDefaults(array(
Options::VERSION => self::LATEST_API_VERSION,
Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/glacier-%s.php',
// Set default value for "accountId" for all requests
'command.params' => array(
'accountId' => '-',
Options::MODEL_PROCESSING => true
)
))
->setExceptionParser(new JsonRestExceptionParser())
->build();
// Add the Glacier version header required for all operations
$client->getConfig()->setPath(
'request.options/headers/x-amz-glacier-version',
$client->getDescription()->getApiVersion()
);
// Allow for specifying bodies with file paths and file handles
$uploadOperations = array('UploadArchive', 'UploadMultipartPart');
$client->addSubscriber(new UploadBodyListener($uploadOperations, 'body', 'sourceFile'));
// Listen for upload operations and make sure the required hash headers are added
$client->addSubscriber(new GlacierUploadListener());
return $client;
}
}