其實還蠻簡單的,比較麻煩的反而是在產生 access key 這個部份,只能說 alibaba 的 document 有點難找
安裝與簡單的範例
安裝 sdk 可以直接到 https://github.com/aliyun/aliyun-oss-php-sdk下載。我自己是用 composer 裝完,可以在工作目錄的 vendor/aliyuncs/oss-sdk-php/ 底下找到 autoload.php 加到 php file 當中。開始使用的時候基本上只要 use OSSOssClient 與 OSSCoreOssException 這兩個 class 就差不多通吃了,下面這段是從 samples/ 目錄裡面的範例做修改的,可以作為參考。
<?php
require_once '../vendor/aliyuncs/oss-sdk-php/autoload.php';
use OSSOssClient;
use OSSCoreOssException;
$accessKeyId = "YOUR_ACCESS_KEY_ID";
$accessKeySecret = "YOUR_ACCESS_KEY_SECRET";
$endpoint = "oss-cn-hongkong.aliyuncs.com";
$bucket = "YOUR_BUCKET_NAME";
try {
/* build connection */
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
/* download file */
$localfile = "localfilename.zip";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $localfile,
);
$ossClient->getObject($bucket, "PATH/TO/THE/TARGET/FILE", $options);
print "download finish";
/* list folders and files */
$prefix = 'REMOTE/PATH/';
$delimiter = '/';
$nextMarker = '';
$maxkeys = 30;
while (true) {
$options = array(
// 'delimiter' => $delimiter,
'prefix' => $prefix,
// 'max-keys' => $maxkeys,
// 'marker' => $nextMarker,
);
var_dump($options);
try {
$listObjectInfo = $ossClient->listObjects($bucket, $options);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILEDn");
printf($e->getMessage() . "n");
return;
}
$nextMarker = $listObjectInfo->getNextMarker();
$listObject = $listObjectInfo->getObjectList();
$listPrefix = $listObjectInfo->getPrefixList();
foreach ($listObject as $key => $value) {
var_dump($key);
var_dump($value);
}
// var_dump(($listObject));
// var_dump(($listPrefix));
if ($nextMarker === '') {
break;
}
}
} catch (OssException $e) {
print $e->getMessage();
}
產生accessKeyId 與 accessKeySecret
在使用 OSS 服務的時候,本來就會有 access key id 與對應的 access key secret,不過預設的權限過大,所以建議產生新的。步驟可以參考下面幾張圖,從 RAM (Resource Access Management) 服務來新增使用者,並給予 OSS read only 的權限。
完成之後就可以取得/下載 access key id 與 access key secret在程式內使用了。




