Laravel 专用阿里云 OSS 扩展包
因为工作中用到了 OSS ,所以封装了一下。写好有段时间了,今晚把 README 完善了下。有需要的朋友点个star
:kissing_heart: 欢迎pull request
和issue
。
Github:https://github.com/NauxLiu/Laravel-Oss
安装
添加依赖
添加
"naux/laravel-oss": "1.*"
到你的composer.json
文件的require
中,
执行composer install
或 composer update
。
注册Provider
在你的 config/app.php
文件 providers
数组中中添加'Naux\LaravelOss\LaravelOssServiceProvider'
。
配置
执行命令php artisan config:publish naux/laravel-oss
然后到app/config/packages/naux/laravel-oss/config.php
文件中按照注释修改配置。
实例
//删除bucket foo下的bar对象
OSS::bucket('foo')->delete('bar');
//上面选择了 bucket,后面的操作都不用重复
//上传请求中的文件
OSS::upload('foobar', Input::file('image'));
//取得directory目录下的所有对象信息
foreach(OSS::files('directory')){
//do something
}
使用
获取原生OSSClient对象
OSS::getClient();
选择bucket
OSS::bucket('foo');
如果在配置文件中设置了
default
字段,就不需要选择
删除bucket
OSS::bucket('foo')->destroy();
创建新的bucket
OSS::create('foo');
//创建bucket同时设置权限
OSS::create('foo', 'public');
权限选项:
private
私有(默认)public-read
公共读public-read-write
公共读写
获取所有bucket
//当前账号拥有的所有bucket
OSS::buckets();
上传文件
//根据路径上传文件
OSS::upload('foobar', '/temps/file');
//上传文件,同时设置其他信息
OSS::upload('foobar', '/temps/file', [
'Expires' => new \DateTime("+5 minutes"),
'Content-Type' => 'foo',
//...
]);
//上传请求中的文件
OSS::update('foobar', Input::file('foobar'));
使用
Input::file()
上传的文件,会被自动设置ContentType
删除object
OSS::delete('object_key');
//同时删除多个
OSS::delete(['object_key1', 'object_key2']);
拷贝Object
OSS::copy('foo', 'bar');
//从当前的bucket拷贝到其他bucket
OSS::copy('foo', 'bar', 'another_bucket');
移动Object
OSS::move('foo', 'bar');
//从当前的bucket其他bucket并重命名
OSS::move('foo', 'bar', 'another_bucket');
获取所有Object列表
OSS::objects();
//方法声明
//public function objects($start = 0, $limit = 100, $prefix = '', $delimiter = ''){}
参数 参考文档
获取指定目录下Object列表
//获得temps目录下所有object列表
OSS::files('temps');
本帖已被设为精华帖!