天天看點

阿裡雲-對象存儲OSS

文檔位址

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’;

常見操作

  • 建立存儲空間
  • 上傳檔案
  • 下載下傳檔案
  • 列舉檔案
  • 删除檔案

① 建立存儲空間:

阿裡雲-對象存儲OSS
阿裡雲-對象存儲OSS
<?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();
}
           

初始化。。。。未完待續