Aliyun-oss-storage для Laravel 5+
Этот репозиторий является ответвлением от jacobcyl/Aliyun-oss-storage. Поскольку автор долгое время не обновлял его, я немного модифицировал и переиздал его.
Алиyun oss файловая система хранения данных для laravel 5. Вы можете использовать Aliyun OSS так же, как обычное хранилище Laravel.
Чтобы установить AliOSS-storage, вы можете просто выполнить следующую команду:
composer require wtto/ali-oss-storage
Затем в вашем config/app.php
добавьте эту строку в массив провайдеров:
Wtto\AliOSS\AliOssServiceProvider::class,
Добавьте следующее в app/filesystems.php
:
'disks'=>[
...
'oss' => [
'driver' => 'oss',
'access_id' => env('ALIOSS_KEYID', null), //Ваш Aliyun OSS AccessKeyId
'access_key' => env('ALIOSS_KEYSECRET', null), //Ваш Aliyun OSS AccessKeySecret
'bucket' => env('ALIOSS_BUCKETNAME', null), //Имя корзины OSS
'endpoint' => env('ALIOSS_ENDPOINT', null), //<конечная точка OSS, например: oss-cn-hangzhou.aliyuncs.com | пользовательский домен, например: img.abc.com> узел OSS во внешней сети или настраиваемый внешний домен
'endpoint_internal' => env('ALIOSS_ENDPOINT_INTERNAL', null), //<внутренняя конечная точка [узел OSS внутренней сети] например: oss-cn-shenzhen-internal.aliyuncs.com> v2.0.4 новое свойство конфигурации, если оно пустое, по умолчанию используется конфигурация endpoint (поскольку проблема с загрузкой во внутреннюю сеть не решена, пожалуйста, временно не используйте внутренний узел загрузки, мы общаемся с техническим персоналом Али)
'cdnDomain' => env('ALIOSS_DOMAIN', null), //<домен CDN, домен cdn> Если isCName истинно, getUrl будет определять, следует ли использовать cdnDomain для генерации URL, если cdnDomain не установлен, то используется endpoint для создания URL, в противном случае используется cdn
'ssl' => env('ALIOSS_SSL', false), // true для использования 'https://' и false для использования 'http://'. по умолчанию — false,
'isCName' => env('ALIOSS_CNAME', false), // Использовать ли настраиваемый домен, true: Storage.url() будет использовать настраиваемый cdn или домен для создания файла url, false: использовать внешний узел для создания url
'debug' => env('ALIOSS_DEBUG', true),
],
...
]
Затем установите драйвер по умолчанию и конфигурацию oss в .env
:
FILESYSTEM_DRIVER=oss
ALIOSS_KEYID=<Ваш Aliyun OSS AccessKeyId>
ALIOSS_KEYSECRET=<Ваш Aliyun OSS AccessKeySecret>
ALIOSS_BUCKETNAME=<Имя корзины OSS>
ALIOSS_ENDPOINT=<конечная точка OSS, например: oss-cn-hangzhou.aliyuncs.com >
ALIOSS_ENDPOINT_INTERNAL=<внутренняя конечная точка [узел OSS внутренней сети]>
ALIOSS_DOMAIN=<домен CDN, домен cdn>
ALIOSS_SSL=<true|false>
ALIOSS_CNAME=<true|false>
ALIOSS_DEBUG=<true|false>
Примечание: Если ваш сервер и ваша корзина OSS находятся не в одном регионе, не настраивайте ALIOSS_ENDPOINT_INTERNAL.
Если ALIOSS_ENDPOINT_INTERNAL настроен, для передачи будет использоваться внутренняя сеть Alibaba cloud, независимо от того, настроены ли ALIOSS_CNAME и ALIOSS_DOMAIN.
Приоритет передачи: ALIOSS_ENDPOINT_INTERNAL > ALIOSS_CNAME=true && ALIOSS_DOMAIN > ALIOSS_ENDPOINT.
Хорошо! Конфигурация завершена. Просто свободно используйте Aliyun OSS как Storage!
См. документацию Laravel для Storage Или вы можете узнать здесь:
Сначала необходимо использовать фасад Storage
use Illuminate\Support\Facades\Storage;
Затем вы можете использовать все API хранилища laravel
Storage::disk('oss'); // если по умолчанию файловые системы драйвера - oss, вы можете пропустить этот шаг
//получить все файлы указанной корзины (см. конфигурацию)
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); // удаление каталога с файлами, используйте с осторожностью
// обновление журналов // новый плагин для версии 2.0 Storage::putRemoteFile('target/path/to/file/jacob.jpg', 'http://example.com/jacob.jpg'); // загрузка удалённого файла в хранилище по URL // новая функция для версии 2.0.1 Storage::url('path/to/img.jpg'); // получение URL файла // новая функция для версии 2.1.1 Storage::signUrl('path/to/img.jpg',$timeout); // получение URL файла с подписью, значение по умолчанию для $timeout = 3600 // новая функция для версии 2.3.0 Storage::objects($directory); // получение всех файлов и каталогов в заданном каталоге Storage::allObjects($directory); // рекурсивное получение всех файлов и каталогов в заданном каталоге // новая функция для версии 2.3.1 Storage::url2path($url); // получение пути из URL Storage::copyDirectory('path/from/','path/to/'); // копирование каталога Storage::moveDirectory('path/from/','path/to/'); // перемещение каталога Storage::renameDirectory('path/from/','path/to/'); // переименование каталога // постраничный запрос объектов в заданной позиции и возврат маркера следующей страницы Storage::objects($directory, $page_size = null, $next_marker = ''); // получение файлов и каталогов по страницам и маркер следующей страницы
## Документация
Более подробную информацию о разработке см. в [Aliyun OSS DOC](https://help.aliyun.com/document_detail/32099.html?spm=5176.doc31981.6.335.eqQ9dM).
## Лицензия
Исходный код выпущен под лицензией MIT. Дополнительную информацию см. в файле LICENSE.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )