Laravel 使用阿里雲 oss 存儲對象

1、下載安裝

composer require jacobcyl/ali-oss-storage

2、註冊服務提供者

config/app.phpproviders下添加:php

//阿里雲OSS對象存儲提供者
Jacobcyl\AliOSS\AliOssServiceProvider::class,

3、配置文件系統

app/filesystems.php中的disks裏下添加:html

'disks' => [ //...
    'oss' => [ 'driver'     => 'oss',
        'access_id'  => '',//Your Aliyun OSS AccessKeyId
        'access_key' => '',//Your Aliyun OSS AccessKeySecret
        'bucket'     => '',//OSS bucket name
        'endpoint'   => 'oss-cn-shenzhen.aliyuncs.com', //<the endpoint of OSS, E.g: oss-cn-hangzhou.aliyuncs.com | custom domain, E.g:img.abc.com> OSS 外網節點或自定義外部域名 //'endpoint_internal' => '', //<internal endpoint [OSS內網節點] 如:oss-cn-shenzhen-internal.aliyuncs.com> v2.0.4 新增配置屬性,若是爲空,則默認使用 endpoint 配置(因爲內網上傳有點小問題未解決,請你們暫時不要使用內網節點上傳,正在與阿里技術溝通中) //'cdnDomain' => '', //<CDN domain, cdn域名> 若是isCName爲true, getUrl會判斷cdnDomain是否設定來決定返回的url,若是cdnDomain未設置,則使用endpoint來生成url,不然使用cdn
        'ssl'        => false, // true to use 'https://' and false to use 'http://'. default is false,
        'isCName'    => false, // 是否使用自定義域名,true: 則Storage.url()會使用自定義的cdn或域名生成文件url, false: 則使用外部節點生成url
        'debug'      => true, ],
    //...
 ],

4、基礎用法

Storage::disk('oss'); // 若是默認文件系統驅動程序是oss,則能夠跳過此步驟 //獲取指定存儲桶的全部文件(請參閱upond配置)
Storage::files($directory); Storage::allFiles($directory); Storage::put('path/to/file/file.jpg', $contents); //第一個參數是目標文件路徑,第二個參數是文件內容
Storage::putFile('path/to/file/file.jpg', 'local/path/to/local_file.jpg'); //從本地路徑上傳文件
 Storage::get('path/to/file/file.jpg'); // 經過路徑獲取文件對象
Storage::exists('path/to/file/file.jpg'); // 肯定存儲(OSS)上是否存在給定文件
Storage::size('path/to/file/file.jpg'); // 獲取文件大小(字節)
Storage::lastModified('path/to/file/file.jpg'); // 獲取最後修改日期
 Storage::directories($directory); // 獲取給定目錄中的全部目錄
Storage::allDirectories($directory); // 獲取給定目錄中的全部(遞歸)目錄
 Storage::copy('old/file1.jpg', 'new/file1.jpg');//拷貝文件
Storage::move('old/file1.jpg', 'new/file1.jpg');//移動文件
Storage::rename('path/to/file1.jpg', 'path/to/file2.jpg');//重命名文件
 Storage::prepend('file.log', 'Prepended Text'); // 在文件前面追加內容
Storage::append('file.log', 'Appended Text'); // 在文件後面追加內容
 Storage::delete('file.jpg');//刪除文件
Storage::delete(['file1.jpg', 'file2.jpg']);//刪除多個文件
 Storage::makeDirectory($directory); // 建立一個目錄
Storage::deleteDirectory($directory); //遞歸刪除目錄。它將刪除給定目錄中的全部文件,所以請謹慎使用。 // 升級日誌 // 適用於v2.0版本的新插件
Storage::putRemoteFile('target/path/to/file/jacob.jpg', 'http://example.com/jacob.jpg'); //經過遠程URL將遠程文件上傳到存儲 // v2.0.1版本的新功能
Storage::url('path/to/img.jpg'); // 獲取文件網址

6、參考文檔

packagist地址:https://packagist.org/packages/jacobcyl/ali-oss-storageapp

阿里雲OSS官方文檔:https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.6.540.49122215yuKg2Ncomposer

相關文章
相關標籤/搜索