V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
peinhu
V2EX  ›  PHP

AetherUpload - 让 Laravel 支持超大文件断点上传

  •  
  •   peinhu · 2016-07-12 09:32:01 +08:00 · 4972 次点击
    这是一个创建于 2863 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说明

    AetherUpload是提供超大文件上传的 laravel 扩展包,带百分比进度显示,支持断点续传,支持自定义中间件,基于 laravel 5 开发。
    示例页面

    用法

    1. 在终端内切换到你的 laravel 项目根目录,执行composer require peinhu/aetherupload-laravel dev-master

    2. config/app.phpproviders数组中添加一行Peinhu\AetherUpload\AetherUploadServiceProvider::class,

    3. 执行php artisan vendor:publish来发布一些文件和目录

    4. 赋予上传目录相应权限,在项目根目录下,执行chmod 755 storage/app/uploads -R

    5. 在浏览器访问http://域名 /aetherupload可到达示例页面

    提示:更改相关配置选项请编辑config/aetherupload.php

    优化建议

    • (推荐)设置每天自动清除无效文件。
      由于上传流程存在意外终止的情况,如在传输过程中强行关闭页面或浏览器,将会导致已产生的临时文件成为无效文件,占据大量的存储空间,我们可以使用 Laravel 的任务调度功能来定期清除它们。
      在 Linux 中运行crontab -e命令,确保文件中包含这行代码:
      * * * * * php /项目根目录的绝对路径 /artisan schedule:run 1>> /dev/null 2>&1
      app/Console/Kernel.php中的schedule方法中添加以下代码:
      $schedule->call(function () {
          (new \Peinhu\AetherUpload\Uploader())->cleanUpDir();
      })->daily();
    
    • 提高临时文件读写速度。
      利用 Linux 的 tmpfs 文件系统,来达到将临时文件放到内存中快速读写的目的。执行以下命令:
      mkdir /dev/shm/tmp
      chmod 1777 /dev/shm/tmp
      mount --bind /dev/shm/tmp /tmp
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3300 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:45 · PVG 21:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.