文檔位址
https://help.aliyun.com/document_detail/32099.html?spm=a2c4g.11186623.6.766.74cdc839H0RSId
安裝(此處為composer安裝)
1、PHP 5.3+
2、擴充依賴:cURL
3、在Ubuntu系統中,請使用apt-get包管理器安裝PHP的cURL擴充 sudo apt-get install php-curl
4、在CentOS系統中,請使用yum包管理器安裝PHP的cURL擴充 sudo yum install php-curl
composer安裝
1、根目錄執行:composer require aliyuncs/oss-sdk-php 或者 在composer.json檔案中添加依賴關系.
2、如果使用composer出現網絡錯誤,可以使用composer中國區的鏡像源。方法是在指令行執行composer config -g repositories.packagist composer http://packagist.phpcomposer.com
"require": {
"aliyuncs/oss-sdk-php": "~2.x.x"
}
# composer install
// vendor/目錄下包含了所依賴的庫。您需要在app.php中添加依賴關系
# require_once __DIR__ . '/vendor/autoload.php';
源碼安裝方式
1、Github位址:https://github.com/aliyun/aliyun-oss-php-sdk/releases?spm=a2c4g.11186623.2.11.35dac83942Vl1K
2、 在GitHub中選擇相應版本并下載下傳打包好的zip檔案
3、解壓後的根目錄中包含一個autoload.php檔案,在代碼中引入此檔案:require_once ‘/path/to/oss-sdk/autoload.php’;
常見操作
- 建立存儲空間
- 上傳檔案
- 下載下傳檔案
- 列舉檔案
- 删除檔案
① 建立存儲空間:

<?php
/*
* 建立存儲空間
*/
if (is_file(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
//阿裡雲主賬号AccessKey擁有所有API的通路權限
//建立RAM賬号:https://ram.console.aliyun.com
$accessKeyId = "YOUR ACCESSID";//需修改
$accessKeySecret = "YOUR ACCESSSECRET";//需修改
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";//OSS資料中心通路域名,此處為杭州,以實際情況為準
$bucket = "jason-test0727";// 存儲空間名稱(數字、小寫字母、-),唯一性
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->createBucket($bucket);
} catch (OssException $e) {
print $e->getMessage();
}
② 上傳檔案:
<?php
/**
* 上傳檔案
* PS:如果伺服器上有同名的檔案,則檔案内容會被覆寫
*/
if (is_file(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
//accessId 和 accessSecret
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
//資料中心,此處為杭州
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
//選擇存儲空間
$bucket= "jason-test0727";
//自定義檔案名
$object = "Hello.md";
//自定義檔案内容
$content = "Hello World!";
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->putObject($bucket, $object, $content);
} catch (OssException $e) {
print $e->getMessage();
}
③ 下載下傳檔案:
<?php
/**
* 下載下傳檔案
* PS:隻是擷取到檔案中的内容,未将整個檔案下載下傳到本地
*/
if (is_file(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
//accessId 和 accessSecret
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "TNua9ItLYfhyt0OFX6RR1oTPMKQ2gX";
//資料中心,此處為杭州
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
//選擇存儲空間
$bucket= "jason-test0727";
//選擇檔案名
$object = "Hello.md";
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$content = $ossClient->getObject($bucket, $object);
print("object content: " . $content);
} catch (OssException $e) {
print $e->getMessage();
}
④ 列舉檔案:
<?php
if (is_file(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 存儲空間名稱
$bucket= "jason-test0727";
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$listObjectInfo = $ossClient->listObjects($bucket);
$objectList = $listObjectInfo->getObjectList();
if (!empty($objectList)) {
foreach ($objectList as $objectInfo) {
print($objectInfo->getKey() . "\t" . $objectInfo->getSize() . "\t" . $objectInfo->getLastModified() . "<br>");
}
}
} catch (OssException $e) {
print $e->getMessage();
}
⑤ 删除檔案
<?php
if (is_file(__DIR__ . '/vendor/autoload.php')) {
require_once __DIR__ . '/vendor/autoload.php';
}
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
// Endpoint以杭州為例,其它Region請按實際情況填寫。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 存儲空間名稱
$bucket= "jason-test0727";
// 檔案名稱
$object = "hello.txt";
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->deleteObject($bucket, $object);
} catch (OssException $e) {
print $e->getMessage();
}