diff options
author | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
commit | 0c8af4992cb0f7589dcafaad65ada12753c64594 (patch) | |
tree | 18e83d068c3e7dd2499331de977782b382279396 /vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php |
initial
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php | 369 |
1 files changed, 369 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php b/vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php new file mode 100644 index 0000000..4b1d3aa --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/S3/S3ClientInterface.php @@ -0,0 +1,369 @@ +<?php +namespace Aws\S3; + +use Aws\AwsClientInterface; +use Aws\CommandInterface; +use Aws\ResultInterface; +use Aws\S3\Exception\S3Exception; +use GuzzleHttp\Promise\PromiseInterface; +use Psr\Http\Message\RequestInterface; + +interface S3ClientInterface extends AwsClientInterface +{ + /** + * Create a pre-signed URL for the given S3 command object. + * + * @param CommandInterface $command Command to create a pre-signed + * URL for. + * @param int|string|\DateTimeInterface $expires The time at which the URL should + * expire. This can be a Unix + * timestamp, a PHP DateTime object, + * or a string that can be evaluated + * by strtotime(). + * + * @return RequestInterface + */ + public function createPresignedRequest(CommandInterface $command, $expires, array $options = []); + + /** + * Returns the URL to an object identified by its bucket and key. + * + * The URL returned by this method is not signed nor does it ensure that the + * bucket and key given to the method exist. If you need a signed URL, then + * use the {@see \Aws\S3\S3Client::createPresignedRequest} method and get + * the URI of the signed request. + * + * @param string $bucket The name of the bucket where the object is located + * @param string $key The key of the object + * + * @return string The URL to the object + */ + public function getObjectUrl($bucket, $key); + + /** + * @deprecated Use doesBucketExistV2() instead + * + * Determines whether or not a bucket exists by name. + * + * @param string $bucket The name of the bucket + * + * @return bool + */ + public function doesBucketExist($bucket); + + /** + * Determines whether or not a bucket exists by name. This method uses S3's + * HeadBucket operation and requires the relevant bucket permissions in the + * default case to prevent errors. + * + * @param string $bucket The name of the bucket + * @param bool $accept403 Set to true for this method to return true in the case of + * invalid bucket-level permissions. Credentials MUST be valid + * to avoid inaccuracies. Using the default value of false will + * cause an exception to be thrown instead. + * + * @return bool + * @throws S3Exception|Exception if there is an unhandled exception + */ + public function doesBucketExistV2($bucket, $accept403); + + /** + * @deprecated Use doesObjectExistV2() instead + * + * Determines whether or not an object exists by name. + * + * @param string $bucket The name of the bucket + * @param string $key The key of the object + * @param array $options Additional options available in the HeadObject + * operation (e.g., VersionId). + * + * @return bool + */ + public function doesObjectExist($bucket, $key, array $options = []); + + /** + * Determines whether or not an object exists by name. This method uses S3's HeadObject + * operation and requires the relevant bucket and object permissions to prevent errors. + * + * @param string $bucket The name of the bucket + * @param string $key The key of the object + * @param bool $includeDeleteMarkers Set to true to consider delete markers + * existing objects. Using the default value + * of false will ignore delete markers and + * return false. + * @param array $options Additional options available in the HeadObject + * operation (e.g., VersionId). + * + * @return bool + * @throws S3Exception|Exception if there is an unhandled exception + */ + public function doesObjectExistV2($bucket, $key, $includeDeleteMarkers = false, array $options = []); + + /** + * Register the Amazon S3 stream wrapper with this client instance. + */ + public function registerStreamWrapper(); + + /** + * Registers the Amazon S3 stream wrapper with this client instance. + * + *This version uses doesObjectExistV2 and doesBucketExistV2 to check + * resource existence. + */ + public function registerStreamWrapperV2(); + + /** + * Deletes objects from Amazon S3 that match the result of a ListObjects + * operation. For example, this allows you to do things like delete all + * objects that match a specific key prefix. + * + * @param string $bucket Bucket that contains the object keys + * @param string $prefix Optionally delete only objects under this key prefix + * @param string $regex Delete only objects that match this regex + * @param array $options Aws\S3\BatchDelete options array. + * + * @see Aws\S3\S3Client::listObjects + * @throws \RuntimeException if no prefix and no regex is given + */ + public function deleteMatchingObjects( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ); + + /** + * Deletes objects from Amazon S3 that match the result of a ListObjects + * operation. For example, this allows you to do things like delete all + * objects that match a specific key prefix. + * + * @param string $bucket Bucket that contains the object keys + * @param string $prefix Optionally delete only objects under this key prefix + * @param string $regex Delete only objects that match this regex + * @param array $options Aws\S3\BatchDelete options array. + * + * @see Aws\S3\S3Client::listObjects + * + * @return PromiseInterface A promise that is settled when matching + * objects are deleted. + */ + public function deleteMatchingObjectsAsync( + $bucket, + $prefix = '', + $regex = '', + array $options = [] + ); + + /** + * Upload a file, stream, or string to a bucket. + * + * If the upload size exceeds the specified threshold, the upload will be + * performed using concurrent multipart uploads. + * + * The options array accepts the following options: + * + * - before_upload: (callable) Callback to invoke before any upload + * operations during the upload process. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - concurrency: (int, default=int(3)) Maximum number of concurrent + * `UploadPart` operations allowed during a multipart upload. + * - mup_threshold: (int, default=int(16777216)) The size, in bytes, allowed + * before the upload must be sent via a multipart upload. Default: 16 MB. + * - params: (array, default=array([])) Custom parameters to use with the + * upload. For single uploads, they must correspond to those used for the + * `PutObject` operation. For multipart uploads, they correspond to the + * parameters of the `CreateMultipartUpload` operation. + * - part_size: (int) Part size to use when doing a multipart upload. + * + * @param string $bucket Bucket to upload the object. + * @param string $key Key of the object. + * @param mixed $body Object data to upload. Can be a + * StreamInterface, PHP stream resource, or a + * string of data to upload. + * @param string $acl ACL to apply to the object (default: private). + * @param array $options Options used to configure the upload process. + * + * @see Aws\S3\MultipartUploader for more info about multipart uploads. + * @return ResultInterface Returns the result of the upload. + */ + public function upload( + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ); + + /** + * Upload a file, stream, or string to a bucket asynchronously. + * + * @param string $bucket Bucket to upload the object. + * @param string $key Key of the object. + * @param mixed $body Object data to upload. Can be a + * StreamInterface, PHP stream resource, or a + * string of data to upload. + * @param string $acl ACL to apply to the object (default: private). + * @param array $options Options used to configure the upload process. + * + * @see self::upload + * @return PromiseInterface Returns a promise that will be fulfilled + * with the result of the upload. + */ + public function uploadAsync( + $bucket, + $key, + $body, + $acl = 'private', + array $options = [] + ); + + /** + * Copy an object of any size to a different location. + * + * If the upload size exceeds the maximum allowable size for direct S3 + * copying, a multipart copy will be used. + * + * The options array accepts the following options: + * + * - before_upload: (callable) Callback to invoke before any upload + * operations during the upload process. The callback should have a + * function signature like `function (Aws\Command $command) {...}`. + * - concurrency: (int, default=int(5)) Maximum number of concurrent + * `UploadPart` operations allowed during a multipart upload. + * - params: (array, default=array([])) Custom parameters to use with the + * upload. For single uploads, they must correspond to those used for the + * `CopyObject` operation. For multipart uploads, they correspond to the + * parameters of the `CreateMultipartUpload` operation. + * - part_size: (int) Part size to use when doing a multipart upload. + * + * @param string $fromBucket Bucket where the copy source resides. + * @param string $fromKey Key of the copy source. + * @param string $destBucket Bucket to which to copy the object. + * @param string $destKey Key to which to copy the object. + * @param string $acl ACL to apply to the copy (default: private). + * @param array $options Options used to configure the upload process. + * + * @see Aws\S3\MultipartCopy for more info about multipart uploads. + * @return ResultInterface Returns the result of the copy. + */ + public function copy( + $fromBucket, + $fromKey, + $destBucket, + $destKey, + $acl = 'private', + array $options = [] + ); + + /** + * Copy an object of any size to a different location asynchronously. + * + * @param string $fromBucket Bucket where the copy source resides. + * @param string $fromKey Key of the copy source. + * @param string $destBucket Bucket to which to copy the object. + * @param string $destKey Key to which to copy the object. + * @param string $acl ACL to apply to the copy (default: private). + * @param array $options Options used to configure the upload process. + * + * @see self::copy for more info about the parameters above. + * @return PromiseInterface Returns a promise that will be fulfilled + * with the result of the copy. + */ + public function copyAsync( + $fromBucket, + $fromKey, + $destBucket, + $destKey, + $acl = 'private', + array $options = [] + ); + + /** + * Recursively uploads all files in a given directory to a given bucket. + * + * @param string $directory Full path to a directory to upload + * @param string $bucket Name of the bucket + * @param string $keyPrefix Virtual directory key prefix to add to each upload + * @param array $options Options available in Aws\S3\Transfer::__construct + * + * @see Aws\S3\Transfer for more options and customization + */ + public function uploadDirectory( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ); + + /** + * Recursively uploads all files in a given directory to a given bucket. + * + * @param string $directory Full path to a directory to upload + * @param string $bucket Name of the bucket + * @param string $keyPrefix Virtual directory key prefix to add to each upload + * @param array $options Options available in Aws\S3\Transfer::__construct + * + * @see Aws\S3\Transfer for more options and customization + * + * @return PromiseInterface A promise that is settled when the upload is + * complete. + */ + public function uploadDirectoryAsync( + $directory, + $bucket, + $keyPrefix = null, + array $options = [] + ); + + /** + * Downloads a bucket to the local filesystem + * + * @param string $directory Directory to download to + * @param string $bucket Bucket to download from + * @param string $keyPrefix Only download objects that use this key prefix + * @param array $options Options available in Aws\S3\Transfer::__construct + */ + public function downloadBucket( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ); + + /** + * Downloads a bucket to the local filesystem + * + * @param string $directory Directory to download to + * @param string $bucket Bucket to download from + * @param string $keyPrefix Only download objects that use this key prefix + * @param array $options Options available in Aws\S3\Transfer::__construct + * + * @return PromiseInterface A promise that is settled when the download is + * complete. + */ + public function downloadBucketAsync( + $directory, + $bucket, + $keyPrefix = '', + array $options = [] + ); + + /** + * Returns the region in which a given bucket is located. + * + * @param string $bucketName + * + * @return string + */ + public function determineBucketRegion($bucketName); + + /** + * Returns a promise fulfilled with the region in which a given bucket is + * located. + * + * @param string $bucketName + * + * @return PromiseInterface + */ + public function determineBucketRegionAsync($bucketName); +} |