|
|
<?php
|
|
|
|
|
|
/**
|
|
|
* Copyright 2019 Huawei Technologies Co.,Ltd.
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
|
* this file except in compliance with the License. You may obtain a copy of the
|
|
|
* License at
|
|
|
*
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
*
|
|
|
* Unless required by applicable law or agreed to in writing, software distributed
|
|
|
* under the License 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.
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
if (file_exists('vendor/autoload.php')) {
|
|
|
require 'vendor/autoload.php';
|
|
|
} else {
|
|
|
require '../vendor/autoload.php'; // sample env
|
|
|
}
|
|
|
|
|
|
if (file_exists('obs-autoloader.php')) {
|
|
|
require 'obs-autoloader.php';
|
|
|
} else {
|
|
|
require '../obs-autoloader.php'; // sample env
|
|
|
}
|
|
|
|
|
|
use Obs\ObsClient;
|
|
|
use Obs\ObsException;
|
|
|
use function GuzzleHttp\json_encode;
|
|
|
|
|
|
$ak = '*** Provide your Access Key ***';
|
|
|
|
|
|
$sk = '*** Provide your Secret Key ***';
|
|
|
|
|
|
$endpoint = 'https://your-endpoint:443';
|
|
|
|
|
|
$obsClient = ObsClient::factory(array (
|
|
|
'key' => $ak,
|
|
|
'secret' => $sk,
|
|
|
'endpoint' => $endpoint,
|
|
|
));
|
|
|
|
|
|
$obsClient->initLog(array (
|
|
|
'FilePath' => './logs',
|
|
|
'FileName' => 'eSDK-OBS-PHP.log',
|
|
|
'MaxFiles' => 10,
|
|
|
'Level' => WARN
|
|
|
));
|
|
|
|
|
|
$bucketName = 'bucket000';
|
|
|
$objectKey = 'test';
|
|
|
|
|
|
// create bucket
|
|
|
function CreateBucket() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "create bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->createBucket(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'ACL' => ObsClient::AclPrivate,
|
|
|
'LocationConstraint' => '',
|
|
|
'StorageClass' => ObsClient::StorageClassWarm
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("Location:%s\n", $resp ['Location']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// list buckets
|
|
|
function ListBuckets() {
|
|
|
global $obsClient;
|
|
|
echo "list bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->listBuckets();
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Buckets'] as $bucket ) {
|
|
|
printf("Buckets[$i][Name]:%s,Buckets[$i][CreationDate]:%s\n", $bucket ['Name'], $bucket ['CreationDate']);
|
|
|
$i ++;
|
|
|
}
|
|
|
printf("Owner[ID]:%s\n", $resp ['Owner'] ['ID']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// delete bucket
|
|
|
function DeleteBucket() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucket(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// list objects
|
|
|
function ListObjects() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "list objects start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->listObjects(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Delimiter' => '',
|
|
|
'Marker' => '',
|
|
|
'MaxKeys' => '',
|
|
|
'Prefix' => ''
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("IsTruncated:%d,Marker:%s,NextMarker:%s,Name:%s\n", $resp ['IsTruncated'], $resp ['Marker'], $resp ['NextMarker'], $resp ['Name']);
|
|
|
printf("Prefix:%s,Delimiter:%s,MaxKeys:%d\n", $resp ['Prefix'], $resp ['Delimiter'], $resp ['MaxKeys']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['CommonPrefixes'] as $CommonPrefixe ) {
|
|
|
printf("CommonPrefixes[$i][Prefix]:%s\n", $CommonPrefixe ['Prefix']);
|
|
|
$i ++;
|
|
|
}
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Contents'] as $content ) {
|
|
|
printf("Contents[$i][ETag]:%s,Contents[$i][Size]:%d,Contents[$i][StorageClass]:%s\n", $content ['ETag'], $content ['Size'], $content ['StorageClass']);
|
|
|
printf("Contents[$i][Key]:%s,Contents[$i][LastModified]:%s\n", $content ['Key'], $content ['LastModified']);
|
|
|
printf("Contents[$i][Owner][ID]:%s\n", $content ['Owner'] ['ID']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// list versions
|
|
|
function ListVersions() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "list versions start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->listVersions(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Delimiter' => '',
|
|
|
'KeyMarker' => '',
|
|
|
'MaxKeys' => '',
|
|
|
'Prefix' => '',
|
|
|
'VersionIdMarker' => ''
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("IsTruncated:%d,KeyMarker:%s,VersionIdMarker:%s,NextKeyMarker:%s\n", $resp ['IsTruncated'], $resp ['KeyMarker'], $resp ['VersionIdMarker'], $resp ['NextKeyMarker']);
|
|
|
printf("NextVersionIdMarker:%s,Name:%s,Prefix:%s,Delimiter:%s,MaxKeys:%s\n", $resp ['NextVersionIdMarker'], $resp ['Name'], $resp ['Prefix'], $resp ['Delimiter'], $resp ['MaxKeys']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['CommonPrefixes'] as $CommonPrefixe ) {
|
|
|
printf("CommonPrefixes[$i][Prefix]:%s\n", $CommonPrefixe ['Prefix']);
|
|
|
$i ++;
|
|
|
}
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Versions'] as $version ) {
|
|
|
printf("Versions[$i][ETag]:%s,Versions[$i][Size]:%d,Versions[$i][StorageClass]:%s\n", $version ['ETag'], $version ['Size'], $version ['StorageClass']);
|
|
|
printf("Versions[$i][Key]:%s,Versions[$i][VersionId]:%s,Versions[$i][IsLatest]:%d,Versions[$i][LastModified]:%s\n", $version ['Key'], $version ['VersionId'], $version ['IsLatest'], $version ['LastModified']);
|
|
|
printf("Versions[$i][Owner][ID]:%s\n", $version ['Owner'] ['ID']);
|
|
|
$i ++;
|
|
|
}
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['DeleteMarkers'] as $deleteMarker ) {
|
|
|
printf("DeleteMarkers[$i][Key]:%s,DeleteMarkers[$i][VersionId]:%s,DeleteMarkers[$i][IsLatest]:%d,DeleteMarkers[$i][LastModified]:%s\n", $deleteMarker ['Key'], $deleteMarker ['VersionId'], $deleteMarker ['IsLatest'], $deleteMarker ['LastModified']);
|
|
|
printf("DeleteMarkers[$i][Owner][ID]:%s\n", $deleteMarker ['Owner'] ['ID']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// head bucket
|
|
|
function HeadBucket() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "head bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->headBucket(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket metadata
|
|
|
function GetBucketMetadata() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket metatdata start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketMetadata(array (
|
|
|
"Bucket" => $bucketName,
|
|
|
"Origin" => "www.example.com",
|
|
|
"RequestHeader" => "header1"
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("StorageClass:%s\n", $resp ["StorageClass"]);
|
|
|
printf("AllowOrigin:%s\n", $resp ["AllowOrigin"]);
|
|
|
printf("MaxAgeSeconds:%s\n", $resp ["MaxAgeSeconds"]);
|
|
|
printf("ExposeHeader:%s\n", $resp ["ExposeHeader"]);
|
|
|
printf("AllowHeader:%s\n", $resp ["AllowHeader"]);
|
|
|
printf("AllowMethod:%s\n", $resp ["AllowMethod"]);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket location
|
|
|
function GetBucketLocation() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket location start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketLocation(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Location:%s\n", $resp ['Location']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket storageinfo
|
|
|
function GetBucketStorageInfo() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket storage info start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketStorageInfo(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Size:%d,ObjectNumber:%d\n", $resp ['Size'], $resp ['ObjectNumber']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// set bucket quota
|
|
|
function SetBucketQuota() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket quota start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketQuota(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'StorageQuota' => 1048576
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket quota
|
|
|
function GetBucketQuota() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket quota start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketQuota(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("StorageQuota:%s\n", $resp ['StorageQuota']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket storage policy
|
|
|
function SetBucketStoragePolicy() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket storage policy start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketStoragePolicy(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'StorageClass' => ObsClient::StorageClassCold
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket storage policy
|
|
|
function GetBucketStoragePolicy() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket storage policy start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketStoragePolicy(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("StorageClass:%s\n", $resp ['StorageClass']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
// set bucket acl
|
|
|
function SetBucketAcl() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket ACL start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketAcl(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'ACL' => '',
|
|
|
'Owner' => array (
|
|
|
'ID' => 'ownerid'
|
|
|
),
|
|
|
'Grants' => array (
|
|
|
0 => array (
|
|
|
'Grantee' => array (
|
|
|
'ID' => 'userid'
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionRead,
|
|
|
'Delivered' => true
|
|
|
),
|
|
|
1 => array (
|
|
|
'Grantee' => array (
|
|
|
'URI' => ObsClient::AllUsers
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionWrite,
|
|
|
'Delivered' => true
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket acl
|
|
|
function GetBucketAcl() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket ACL start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketAcl(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Owner[ID]:%s\n", $resp ['Owner'] ['ID'] );
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Grants'] as $grant ) {
|
|
|
printf("Grants[$i][Grantee][ID]:%s,Grants[$i][Grantee][URI]:%s\n",$grant ['Grantee'] ['ID'], $grant ['Grantee'] ['URI']);
|
|
|
printf("Grants[$i][Permission]:%s\n", $grant ['Permission']);
|
|
|
printf("Grants[$i][Delivered]:%s\n", $grant['Delivered'] ? 'true' : 'false');
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket logging configuration
|
|
|
function SetBucketLogging() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket logging configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketLogging(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Agency' => 'your agency',
|
|
|
'LoggingEnabled' => array (
|
|
|
'TargetBucket' => 'bucket003',
|
|
|
'TargetPrefix' => 'bucket.log',
|
|
|
'TargetGrants' => array (
|
|
|
0 => array (
|
|
|
'Grantee' => array (
|
|
|
'ID' => 'userid'
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionRead
|
|
|
),
|
|
|
1 => array (
|
|
|
'Grantee' => array (
|
|
|
'URI' => ObsClient::AllUsers,
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionRead
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket logging configuration
|
|
|
function GetBucketLogging() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket logging configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketLogging(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Agency:%s\n", $resp ['Agency']);
|
|
|
printf("LoggingEnabled[TargetBucket]:%s,LoggingEnabled[TargetPrefix]:%s\n", $resp ['LoggingEnabled'] ['TargetBucket'], $resp ['LoggingEnabled'] ['TargetPrefix']);
|
|
|
if (is_array($resp ['LoggingEnabled'] ['TargetGrants'])) {
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['LoggingEnabled'] ['TargetGrants'] as $grant ) {
|
|
|
printf("LoggingEnabled[$i][TargetGrants][Permission]:%s\n", $grant ['Permission']);
|
|
|
printf("LoggingEnabled[$i][TargetGrants][Grantee][ID]:%s,LoggingEnabled[$i][TargetGrants][Grantee][URI]:%s\n", $grant ['Grantee'] ['ID'], $grant ['Grantee'] ['URI']);
|
|
|
$i ++;
|
|
|
}
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket policy
|
|
|
function SetBucketPolicy() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket policy start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketPolicy(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Policy' => 'your policy'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket policy
|
|
|
function GetBucketPolicy() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket policy start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketPolicy(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("Policy:%s\n", $resp ['Policy']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete bucket policy
|
|
|
function DeleteBucketPolicy() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket policy start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucketPolicy(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket lifycycle configuration
|
|
|
function SetBucketLifecycle() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket lifecycle configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketLifecycle(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Rules' => array (
|
|
|
0 => array (
|
|
|
'ID' => '',
|
|
|
'Prefix' => 'ok',
|
|
|
'Status' => 'Enabled',
|
|
|
'Transitions' => array (
|
|
|
0 => array (
|
|
|
'StorageClass' => ObsClient::StorageClassWarm,
|
|
|
'Date' => '2019-02-01T00:00:00Z'
|
|
|
),
|
|
|
1 => array (
|
|
|
'StorageClass' => ObsClient::StorageClassCold,
|
|
|
'Date' => '2019-03-01T00:00:00Z'
|
|
|
)
|
|
|
),
|
|
|
'Expiration' => array (
|
|
|
'Date' => '2019-04-01T00:00:00Z'
|
|
|
),
|
|
|
'NoncurrentVersionTransitions' => array (
|
|
|
0 => array (
|
|
|
'StorageClass' => ObsClient::StorageClassWarm,
|
|
|
'NoncurrentDays' => 30
|
|
|
),
|
|
|
1 => array (
|
|
|
'StorageClass' => ObsClient::StorageClassCold,
|
|
|
'NoncurrentDays' => 60
|
|
|
)
|
|
|
),
|
|
|
// 'Expiration'=>array('Days'=>100),
|
|
|
'NoncurrentVersionExpiration' => array (
|
|
|
'NoncurrentDays' => 60
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket lifycycle configuration
|
|
|
function GetBucketLifecycle() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket lifecycle configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketLifecycle(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Rules'] as $rule ) {
|
|
|
foreach ( $rule ['Transitions'] as $index => $transition ) {
|
|
|
printf("Rules[$i][Transitions][$index][Date]:%s,Rules[$i][Transitions][$index][StorageClass]:%s\n", $transition ['Date'], $transition ['StorageClass']);
|
|
|
}
|
|
|
printf("Rules[$i][Expiration][Date]:%s,Rules[$i][Expiration][Days]:%d\n", $rule ['Expiration'] ['Date'], $rule ['Expiration'] ['Days']);
|
|
|
printf("Rules[$i][NoncurrentVersionExpiration][NoncurrentDays]:%s\n", $rule ['NoncurrentVersionExpiration'] ['NoncurrentDays']);
|
|
|
foreach ( $rule ['NoncurrentVersionTransitions'] as $index => $noncurrentVersionTransition ) {
|
|
|
printf("Rules[$i][NoncurrentVersionTransitions][$index][NoncurrentDays]:%d,Rules[$i][NoncurrentVersionTransitions][$index][StorageClass]:%s\n", $noncurrentVersionTransition ['NoncurrentDays'], $noncurrentVersionTransition ['StorageClass']);
|
|
|
}
|
|
|
printf("Rules[$i][ID]:%s,Rules[$i][Prefix]:%s,Rules[$i][Status]:%s\n", $rule ['ID'], $rule ['Prefix'], $rule ['Status']);
|
|
|
$i ++;
|
|
|
}
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete bucket lifycycle configuration
|
|
|
function DeleteBucketLifecycle() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket lifecycle configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucketLifecycle(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket website configuration
|
|
|
function SetBucketWebsite() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket website configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketWebsite(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
// 'RedirectAllRequestsTo'=>array('HostName'=>'obs.hostname','Protocol'=>'http'),
|
|
|
'IndexDocument' => array (
|
|
|
'Suffix' => 'index.html'
|
|
|
),
|
|
|
'ErrorDocument' => array (
|
|
|
'Key' => 'error.html'
|
|
|
),
|
|
|
'RoutingRules' => array (
|
|
|
0 => array (
|
|
|
'Condition' => array (
|
|
|
'KeyPrefixEquals' => 'docs/',
|
|
|
'HttpErrorCodeReturnedEquals' => 404
|
|
|
),
|
|
|
'Redirect' => array (
|
|
|
'ReplaceKeyPrefixWith' => 'documents/',
|
|
|
'HostName' => 'obs.hostname',
|
|
|
'Protocol' => 'http',
|
|
|
'HttpRedirectCode' => 308
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket website configuration
|
|
|
function GetBucketWebsite() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket website configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->GetBucketWebsite(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("RedirectAllRequestsTo[HostName]:%s,RedirectAllRequestsTo[Protocol]:%s\n", $resp ['RedirectAllRequestsTo'] ['HostName'], $resp ['RedirectAllRequestsTo'] ['Protocol']);
|
|
|
printf("IndexDocument[Suffix]:%s\n", $resp ['IndexDocument'] ['Suffix']);
|
|
|
printf("ErrorDocument[Key]:%s\n", $resp ['ErrorDocument'] ['Key']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['RoutingRules'] as $rout ) {
|
|
|
printf("RoutingRules[$i][Condition][HttpErrorCodeReturnedEquals]:%s,RoutingRules[$i][Condition][KeyPrefixEquals]:%s\n", $rout ['Condition'] ['HttpErrorCodeReturnedEquals'], $rout ['Condition'] ['KeyPrefixEquals']);
|
|
|
printf("RoutingRules[$i][Redirect][Protocol]:%s,RoutingRules[$i][Redirect][HostName]:%s,RoutingRules[$i][Redirect][ReplaceKeyPrefixWith]:%s,RoutingRules[$i][Redirect][ReplaceKeyWith]:%s,RoutingRules[$i][Redirect][HttpRedirectCode]:%s\n", $rout ['Redirect'] ['Protocol'], $rout ['Redirect'] ['HostName'], $rout ['Redirect'] ['ReplaceKeyPrefixWith'], $rout ['Redirect'] ['ReplaceKeyWith'], $rout ['Redirect'] ['HttpRedirectCode']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete bucket website configuration
|
|
|
function DeleteBucketWebsite() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket website configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucketWebsite(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket versioning configuration
|
|
|
function SetBucketVersioning() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket versioning configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketVersioning(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Status' => 'Suspended'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket versioning configuration
|
|
|
function GetBucketVersioning() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket versioning configuration start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketVersioning(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("Status:%s\n", $resp ['Status']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket cors
|
|
|
function SetBucketCors() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket cors start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketCors(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'CorsRules' => array (
|
|
|
0 => array (
|
|
|
'ID' => '123456',
|
|
|
'AllowedMethod' => array (
|
|
|
0 => "PUT",
|
|
|
1 => "POST",
|
|
|
2 => "GET",
|
|
|
3 => "DELETE"
|
|
|
),
|
|
|
'AllowedOrigin' => array (
|
|
|
0 => "obs.hostname1"
|
|
|
),
|
|
|
'AllowedHeader' => array (
|
|
|
0 => "header-1",
|
|
|
1 => "header-2"
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete bucket cors
|
|
|
function DeleteBucketCors() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket cors start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucketCors(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket cors
|
|
|
function GetBucketCors() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket cors start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketCors(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
print_r($resp ['CorsRules']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// options bucket
|
|
|
function OptionsBucket() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "options bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->optionsBucket(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Origin' => 'obs.hostname1',
|
|
|
'AccessControlRequestMethods' => array (
|
|
|
0 => "PUT",
|
|
|
1 => "POST"
|
|
|
),
|
|
|
'AccessControlRequestHeaders' => array (
|
|
|
0 => "header-1",
|
|
|
1 => "header-2"
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
print_r($resp);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket tagging
|
|
|
function SetBucketTagging() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket tagging start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketTagging(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Tags' => array (
|
|
|
0 => array (
|
|
|
'Key' => 'testKey1',
|
|
|
'Value' => 'testValue1'
|
|
|
),
|
|
|
1 => array (
|
|
|
'Key' => 'testKey2',
|
|
|
'Value' => 'testValue2'
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket tagging
|
|
|
function GetBucketTagging() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket tagging start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketTagging(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
foreach ( $resp ["Tags"] as $tag ) {
|
|
|
printf("Tag[%s:%s]\n", $tag ["Key"], $tag ["Value"]);
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete bucket tagging
|
|
|
function DeleteBucketTagging() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete bucket tagging start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteBucketTagging(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set bucket notification
|
|
|
function SetBucketNotification() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "set bucket notification start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setBucketNotification(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'TopicConfigurations' => array (
|
|
|
0 => array (
|
|
|
'ID' => '001',
|
|
|
'Topic' => 'your topic',
|
|
|
'Event' => array (
|
|
|
0 => 'ObjectCreated:*'
|
|
|
),
|
|
|
'Filter' => array (
|
|
|
0 => array (
|
|
|
'Name' => 'prefix',
|
|
|
'Value' => 'smn/'
|
|
|
),
|
|
|
1 => array (
|
|
|
'Name' => 'suffix',
|
|
|
'Value' => '.jpg'
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get bucket notification
|
|
|
function GetBucketNotification() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "get bucket notification start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getBucketNotification(array (
|
|
|
'Bucket' => $bucketName
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
print_r($resp ['TopicConfigurations']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete object
|
|
|
function DeleteObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "delete object start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteObject(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'VersionId' => ''
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("DeleteMarker:%s,VersionId:%s\n", $resp ['DeleteMarker'], $resp ['VersionId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// options object
|
|
|
function OptionsObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "options bucket start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->optionsObject(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'Origin' => 'obs.hostname1',
|
|
|
'AccessControlRequestMethods' => array (
|
|
|
"PUT",
|
|
|
"GET"
|
|
|
),
|
|
|
'AccessControlRequestHeaders' => array (
|
|
|
0 => "header-1",
|
|
|
1 => "header-2"
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
print_r($resp);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// delete objects
|
|
|
function DeleteObjects() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "delete objects start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->deleteObjects(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Objects' => array (
|
|
|
0 => array (
|
|
|
'Key' => 'test'
|
|
|
),
|
|
|
1 => array (
|
|
|
'Key' => 'file.log'
|
|
|
)
|
|
|
),
|
|
|
'Quiet' => false
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Errors'] as $error ) {
|
|
|
printf("Errors[$i][Key]:%s,Errors[$i][VersionId]:%s锛孍rrors[$i][Code]:%s锛孍rrors[$i][Message]:%s\n", $error ['Key'], $error ['VersionId'], $error ['Code'], $error ['Message']);
|
|
|
$i ++;
|
|
|
}
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Deleteds'] as $delete ) {
|
|
|
printf("Deleteds[$i][Key]:%s,Deleted[$i][VersionId]:%s锛孌eleted[$i][DeleteMarker]:%s锛孌eleted[$i][DeleteMarkerVersionId]:%s\n", $delete ['Key'], $delete ['VersionId'], $delete ['DeleteMarker'], $delete ['DeleteMarkerVersionId']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// set object acl
|
|
|
function SetObjectAcl() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "set object ACL start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->setObjectAcl(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'Delivered' => true,
|
|
|
'Grants' => array (
|
|
|
0 => array (
|
|
|
'Grantee' => array (
|
|
|
'ID' => 'userid',
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionWrite
|
|
|
),
|
|
|
1 => array (
|
|
|
'Grantee' => array (
|
|
|
'URI' => ObsClient::AllUsers
|
|
|
),
|
|
|
'Permission' => ObsClient::PermissionRead
|
|
|
)
|
|
|
),
|
|
|
'Owner' => array (
|
|
|
'ID' => 'ownerid'
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get object acl
|
|
|
function GetObjectAcl() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "get bucket ACL start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getObjectAcl(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Owner[ID]:%s\n", $resp ['Owner'] ['ID']);
|
|
|
printf("Delivered:%s\n", $resp['Delivered'] ? 'true' : 'false');
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Grants'] as $grant ) {
|
|
|
printf("Grants[$i][Grantee][ID]:%s,Grants[$i][Grantee][URI]:%s\n", $grant ['Grantee'] ['ID'], $grant ['Grantee'] ['URI']);
|
|
|
printf("Grants[$i][Permission]:%s\n", $grant ['Permission']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// restore object
|
|
|
function RestoreObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "restore object start...\n";
|
|
|
|
|
|
try {
|
|
|
$resp = $obsClient->restoreObject(array (
|
|
|
"Bucket" => $bucketName,
|
|
|
"Key" => $objectKey,
|
|
|
"VersionId" => NULL,
|
|
|
"Days" => 1,
|
|
|
"Tier" => ObsClient::RestoreTierExpedited
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ["RequestId"]);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// put object
|
|
|
function PutObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "put object start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->putObject(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'Metadata' => array (
|
|
|
'test' => "value"
|
|
|
),
|
|
|
// 'Body'=>'msg to put',
|
|
|
'ContentType' => 'text/plain',
|
|
|
'SourceFile' => '/temp/test.txt'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("ETag:%s,VersionId:%s\n", $resp ['ETag'], $resp ['VersionId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get object metadata
|
|
|
function GetObjectMetadata() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "get object metadata start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getObjectMetadata(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Expiration:%s,LastModified:%s,ContentLength:%d,StorageClass:%s\n", $resp ['Expiration'], $resp ['LastModified'], $resp ['ContentLength'], $resp ['StorageClass']);
|
|
|
printf("ETag:%s,VersionId:%s,WebsiteRedirectLocation:%s\n", $resp ['ETag'], $resp ['VersionId'], $resp ['WebsiteRedirectLocation']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// get object
|
|
|
function GetObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "get object start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->getObject(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'Range' => 'bytes=0-10',
|
|
|
'SaveAsFile' => '/temp/test.txt'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Metadata:%s\n", json_encode($resp ['Metadata']));
|
|
|
printf("DeleteMarker:%s,Expiration:%s,LastModified:%s\n", $resp ['DeleteMarker'], $resp ['Expiration'], $resp ['LastModified']);
|
|
|
printf("ContentLength:%d,ETag:%s,VersionId:%s,SaveAsFile:%s\n", $resp ['ContentLength'], $resp ['ETag'], $resp ['VersionId'], $resp ['SaveAsFile']);
|
|
|
printf("Expires:%s,WebsiteRedirectLocation:%s\n", $resp ['Expires'], $resp ['WebsiteRedirectLocation']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// copy object
|
|
|
function CopyObject() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "copy object start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->copyObject(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'CopySource' => 'bucket003/test',
|
|
|
'Metadata' => array (
|
|
|
'test' => "value"
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("ETag:%s,VersionId:%s,LastModified:%s,CopySourceVersionId:%s\n", $resp ['ETag'], $resp ['VersionId'], $resp ['LastModified'], $resp ['CopySourceVersionId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// initiate multipart upload
|
|
|
function InitiateMultipartUpload() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "initiate mutipart upload start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->initiateMultipartUpload(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Bucket:%s,Key:%s,UploadId:%s\n", $resp ['Bucket'], $resp ['Key'], $resp ['UploadId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// abort multipart upload
|
|
|
function AbortMultipartUpload() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "abort mutipart upload start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->abortMultipartUpload(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'UploadId' => 'uploadid'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// list multipart uploads
|
|
|
function ListMultipartUploads() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
echo "list mutipart upload start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->listMultipartUploads(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'MaxUploads' => 1000
|
|
|
));
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Bucket锛<EFBFBD>%s,KeyMarker:%s,UploadIdMarker:%s,NextKeyMarker:%s\n", $resp ['Bucket'], $resp ['KeyMarker'], $resp ['UploadIdMarker'], $resp ['NextKeyMarker']);
|
|
|
printf("Prefix:%s,Delimiter:%s,NextUploadIdMarker:%s,MaxUploads:%d,IsTruncated:%s\n", $resp ['Prefix'], $resp ['Delimiter'], $resp ['NextUploadIdMarker'], $resp ['MaxUploads'], $resp ['IsTruncated']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['CommonPrefixes'] as $common ) {
|
|
|
printf("CommonPrefixes[$i][Prefix]:%s\n", $common ['Prefix']);
|
|
|
$i ++;
|
|
|
}
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Uploads'] as $upload ) {
|
|
|
printf("Uploads[$i][Key]:%s,Uploads[$i][UploadId]:%s,Uploads[$i][StorageClass]:%s,Uploads[$i][Initiated]:%s\n", $upload ['Key'], $upload ['UploadId'], $upload ['StorageClass'], $upload ['Initiated']);
|
|
|
printf("Uploads[$i][Initiator][ID]:%s,Uploads[$i][Initiator][DisplayName]:%s\n", $upload ['Initiator'] ['ID'], $upload ['Initiator'] ['DisplayName']);
|
|
|
printf("Uploads[$i][Owner][ID]:%s,Uploads[$i][Owner][DisplayName]:%s\n", $upload ['Owner'] ['ID'], $upload ['Owner'] ['DisplayName']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// upload part
|
|
|
function UploadPart() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "upload part start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->uploadPart(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'UploadId' => 'uploadid',
|
|
|
'PartNumber' => 1,
|
|
|
// 'Body' => 'test',
|
|
|
'SourceFile' => '/temp/test.txt'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("ETag:%s\n", $resp ['ETag']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// copry part
|
|
|
function CopyPart() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "copy part start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->copyPart(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'UploadId' => 'uploadid',
|
|
|
'PartNumber' => 1,
|
|
|
'CopySource' => 'bucket003/test'
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("ETag:%s,LastModified:%s\n", $resp ['ETag'], $resp ['LastModified']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// list parts
|
|
|
function ListParts() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "list parts start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->listParts(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'UploadId' => 'uploadid',
|
|
|
'MaxParts' => 500,
|
|
|
'PartNumberMarker' => 0
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Bucket锛<EFBFBD>%s,Key:%s,UploadId:%s,PartNumberMarker:%d\n", $resp ['Bucket'], $resp ['Key'], $resp ['UploadId'], $resp ['PartNumberMarker']);
|
|
|
printf("NextPartNumberMarker:%d,MaxParts:%d,IsTruncated:%d,StorageClass:%s\n", $resp ['NextPartNumberMarker'], $resp ['MaxParts'], $resp ['IsTruncated'], $resp ['StorageClass']);
|
|
|
printf("Initiator[ID]:%s,Initiator[DisplayName]:%s\n", $resp ['Initiator'] ['ID'], $resp ['Initiator'] ['DisplayName']);
|
|
|
printf("Owner[ID]:%s,Owner[DisplayName]:%s\n", $resp ['Owner'] ['ID'], $resp ['Owner'] ['DisplayName']);
|
|
|
$i = 0;
|
|
|
foreach ( $resp ['Parts'] as $part ) {
|
|
|
printf("Parts[$i][PartNumber]:%s,Parts[$i][LastModified]:%s,Parts[$i][ETag]:%s,Parts[$i][Size]:%d\n", $part ['PartNumber'], $part ['LastModified'], $part ['ETag'], $part ['Size']);
|
|
|
$i ++;
|
|
|
}
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// merge parts
|
|
|
function CompleteMultipartUpload() {
|
|
|
global $obsClient;
|
|
|
global $bucketName;
|
|
|
global $objectKey;
|
|
|
echo "complete multipart upload start...\n";
|
|
|
try {
|
|
|
$resp = $obsClient->completeMultipartUpload(array (
|
|
|
'Bucket' => $bucketName,
|
|
|
'Key' => $objectKey,
|
|
|
'UploadId' => 'uploadid',
|
|
|
'Parts' => array (
|
|
|
0 => array (
|
|
|
'PartNumber' => 1,
|
|
|
'ETag' => 'etagvalue'
|
|
|
)
|
|
|
)
|
|
|
));
|
|
|
printf("HttpStatusCode:%s\n", $resp ['HttpStatusCode']);
|
|
|
printf("RequestId:%s\n", $resp ['RequestId']);
|
|
|
printf("Bucket:%s,Key:%s,ETag:%s,VersionId:%s,Location:%s\n", $resp ['Bucket'], $resp ['Key'], $resp ['ETag'], $resp ['VersionId'], $resp ['Location']);
|
|
|
} catch ( ObsException $e ) {
|
|
|
echo $e;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//----bucket related apis---
|
|
|
// CreateBucket();
|
|
|
// ListBuckets();
|
|
|
// DeleteBucket();
|
|
|
// ListObjects();
|
|
|
// ListVersions();
|
|
|
// HeadBucket();
|
|
|
// GetBucketMetadata();
|
|
|
// GetBucketLocation();
|
|
|
// GetBucketStorageInfo();
|
|
|
// SetBucketQuota();
|
|
|
// GetBucketQuota();
|
|
|
// SetBucketStoragePolicy();
|
|
|
// GetBucketStoragePolicy();
|
|
|
// SetBucketAcl();
|
|
|
// GetBucketAcl();
|
|
|
// SetBucketLogging();
|
|
|
// GetBucketLogging();
|
|
|
// SetBucketPolicy();
|
|
|
// GetBucketPolicy();
|
|
|
// DeleteBucketPolicy();
|
|
|
// SetBucketLifecycle();
|
|
|
// GetBucketLifecycle();
|
|
|
// DeleteBucketLifecycle();
|
|
|
// SetBucketWebsite();
|
|
|
// GetBucketWebsite();
|
|
|
// DeleteBucketWebsite();
|
|
|
// SetBucketVersioning();
|
|
|
// GetBucketVersioning();
|
|
|
// SetBucketCors();
|
|
|
// GetBucketCors();
|
|
|
// DeleteBucketCors();
|
|
|
// OptionsBucket();
|
|
|
// SetBucketTagging();
|
|
|
// GetBucketTagging();
|
|
|
// DeleteBucketTagging();
|
|
|
// SetBucketNotification();
|
|
|
// GetBucketNotification();
|
|
|
|
|
|
//-----object related apis--------
|
|
|
// DeleteObject();
|
|
|
// OptionsObject();
|
|
|
// SetObjectAcl();
|
|
|
// GetObjectAcl();
|
|
|
// RestoreObject();
|
|
|
// DeleteObjects();
|
|
|
// PutObject();
|
|
|
// GetObject();
|
|
|
// CopyObject();
|
|
|
// GetObjectMetadata();
|
|
|
// InitiateMultipartUpload();
|
|
|
// ListMultipartUploads();
|
|
|
// AbortMultipartUpload();
|
|
|
// UploadPart();
|
|
|
// ListParts();
|
|
|
// CompleteMultipartUpload();
|
|
|
// CopyPart();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|