其實還蠻簡單的,比較麻煩的反而是在產生 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在程式內使用了。