承接 tonylabs/laravel-object-storage-service 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tonylabs/laravel-object-storage-service

Composer 安装命令:

composer require tonylabs/laravel-object-storage-service

包简介

AliCloud Object Storage Service package for Laravel framework

README 文档

README

AliCloud Cloud Object Storage Service For Laravel Framework

Composer

composer require tonylabs/laravel-object-storage-service

Setup .env

OSS_ACCESS_KEY_ID=<Your aliyun accessKeyId, Required>
OSS_ACCESS_KEY_SECRET=<Your aliyun accessKeySecret, Required>
OSS_BUCKET=<Your oss bucket name, Required>
OSS_ENDPOINT=<Your oss endpoint domain, Required>

Modify config/filesystems.php

'default' => env('FILESYSTEM_DRIVER', 'oss'),
#...
'disks' =>[

    'oss' => [
        'driver'            => "oss",
        'access_key_id'     => env('OSS_ACCESS_KEY_ID'),           # Required
        'access_key_secret' => env('OSS_ACCESS_KEY_SECRET'),       # Required
        'bucket'            => env('OSS_BUCKET'),                  # Required
        'endpoint'          => env('OSS_ENDPOINT'),                # Required e.g. oss-cn-shanghai.aliyuncs.com
        'internal'          => env('OSS_INTERNAL', null),          # Optional e.g. oss-cn-shanghai-internal.aliyuncs.com
        "domain"            => env("OSS_DOMAIN", null),            // Optional, For example: oss.my-domain.com
        "is_cname"          => env("OSS_CNAME", false),            // Optional, if the Endpoint is a custom domain name, this must be true, see: https://github.com/aliyun/aliyun-oss-php-sdk/blob/572d0f8e099e8630ae7139ed3fdedb926c7a760f/src/OSS/OssClient.php#L113C1-L122C78
        "prefix"            => env("OSS_PREFIX", ""),              // Optional, The prefix of the store path
        "use_ssl"           => env("OSS_SSL", false),              // Optional, Whether to use HTTPS
        "reverse_proxy"     => env("OSS_REVERSE_PROXY", false),    // Optional, Whether to use the Reverse proxy, such as nginx
        "throw"             => env("OSS_THROW", false),            // Optional, Whether to throw an exception that causes an error
        "options"           => [],                                 // Optional, Add global configuration parameters, For example: [\OSS\OssClient::OSS_CHECK_MD5 => false]
        "macros"            => []                                  // Optional, Add custom Macro, For example: [\App\Macros\ListBuckets::class, \App\Macros\CreateBucket::class]
    ],

]

Init

use Illuminate\Support\Facades\Storage;

$objStorage = Storage::disk('oss');

Write

Upload a local file to remote OSS

Storage::disk('oss')->putFile('remote/path', 'local/path/file_name.ext');
Storage::disk('oss')->putFileAs('remote/path', 'local/path/file_name.ext', 'new_file_name.ext');

Streaming a file content and write into OSS as a file

Storage::disk('oss')->put("dir/path/file.txt", file_get_contents("/local/path/file.txt"));
$fp = fopen("/local/path/file.txt","r");
Storage::disk('oss')->put("dir/path/file.txt", $fp);
fclose($fp);

Prepend or append new content to a file

Storage::disk('oss')->prepend('remote/path/file_name', 'Bring your idea to life in no time.'); 
Storage::disk('oss')->append('remote/path/file_name', 'Bring your idea to life in no time.');

Read

Storage::disk('oss')->url('remote/path/file_name');
Storage::disk('oss')->get('remote/path/file_name'); 
Storage::disk('oss')->exists('remote/path/file_name'); 
Storage::disk('oss')->size('remote/path/file_name'); 
Storage::disk('oss')->lastModified('remote/path/file_name');

Delete

Storage::disk('oss')->delete('remote/path/file_name');
Storage::disk('oss')->delete(['remote/path/file_name_one', 'remote/path/file_name_two']);

File Actions

Storage::disk('oss')->copy('remote/path/file_name', 'remote/path/file_name_clone');
Storage::disk('oss')->move('remote/path/file_name', 'remote/path/new_file_name');
Storage::disk('oss')->rename('remote/path/file_name', 'remote/path/new_file_name');

Folder Actions

Storage::disk('oss')->makeDirectory('remote/path/folder_name');
Storage::disk('oss')->deleteDirectory('remote/path/folder_name');
Storage::disk('oss')->files('remote/path/folder');
Storage::disk('oss')->allFiles('remote/path/folder');
Storage::disk('oss')->directories('remote/path/folder');
Storage::disk('oss')->allDirectories('remote/path/folder');

tonylabs/laravel-object-storage-service 适用场景与选型建议

tonylabs/laravel-object-storage-service 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 95 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 04 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「filesystem」 「storage」 「laravel」 「oss」 「aliyun」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 tonylabs/laravel-object-storage-service 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 tonylabs/laravel-object-storage-service 我们能提供哪些服务?
定制开发 / 二次开发

基于 tonylabs/laravel-object-storage-service 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 95
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 17
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-04-16