ftm-pm/media-server

该包已被废弃且不再维护。没有建议的替代包。

MediaServer 是一个微应用,接收带有滤镜的图像文件,并返回该图像的路径以及应用了滤镜的图像集合。

This package is not auto-updated.

Last update: 2020-01-22 19:03:38 UTC


README

MediaServer 是一个微应用,接收带有滤镜的图像文件(或简单文件)并返回该图像的路径以及应用了滤镜的图像集合(或简单文件的路径)。

俄语文档在此

设置

MediaServer 是一个symfony/skeleton 应用程序,带有上传和裁剪图像的包。以下是一些包

安装

运行 Composer 命令以创建新项目

composer create-project ftm-pm/media-server my-project

配置

安装后,您需要设置环境变量。您可以在 .env 文件中查看变量。

下一步,运行命令以更新数据库。

php bin/console d:s:u --force

在 MediaServer 中,使用了 JWT 进行授权。您可以在此处查看文档。

要创建新用户,您可以使用任何 REST 客户端。您应向 http://my-project/api/register 发送新请求,并带有参数

{
  "username": "johndoe",
  "password": "test",
  "email": "johndoe@example.com"
}

或使用 curl

curl -X POST http://my-project/api/register -d username=johndoe -d password=test -d email=johndoe@example.com

在确认电子邮件后,获取令牌。向 http://my-project/api/token 发送新请求

{
  "username": "johndoe",
  "password": "test"
}

或使用 curl

curl -X POST http://my-project/api/token -d username=johndoe -d password=test

MediaServer API 返回两个字段

{
  "token": "...",
  "refresh_token": "..."
}

对于授权,您必须在任何请求中发送以下头:Authorization: Bearer your_token。

使用

MediaServer API 可以创建(加载、裁剪...)和删除图像。 curl -X POST http://my-project/api/images ... - 创建 curl -X DELETE http://my-project/api/images/id ... - 根据id删除

简单加载

要创建新图像,您可以发送一个新的 post 请求,带有参数 imageFile

curl -X POST -H "Authorization: Bearer your_token" -H "Content-Type: multipart/form-data" -F "imageFile=@/path/for/your/file.jpg" http://my-project/api/images

MediaServer API 返回一个字段,包含源图像的路径

{
  "origin": "http://my-project/uploads/images/5ab/1e4/f82/5ab1e4f821d62240251619.jpg"
}

创建预览

您可以使用 LiipImagineBundle 为图像创建不同的预览。在 API 中,previews 参数是一个由 LiipImagineBundle 过滤器配置组成的数组。

{
  "previews": {
    "small": {
      "thumbnail": {
        "size": [50, 50]
      }
    },
    "large": {
      "thumbnail": {
        "size": [50, 50]
      },
      "background": { 
        "size": [124, 94], 
        "position": "center", 
        "color": "#000000"
      }
    }
  }
}

例如,创建一个 small 预览

curl -X POST -H "Authorization: Bearer your_token" -H "Content-Type: multipart/form-data" -F "imageFile=@/path/for/your/file.jpg"  -F "previews[small][thumbnail][size][0]=100" -F "previews[small][thumbnail][size][]=50" http://my-project/api/images

MediaServer API 返回源图像的路径,以及预览集合

{
  "id": 1,
  "createdAt": "2018-07-28T18:35:47+03:00",
  "updatedAt": "2018-07-28T18:35:47+03:00",
  "name": "5ab1ed5b538e9914783874.png",
  "size": 536793,
  "origin": "http://my-project/uploads/images/5ab/1ed/5b5/5ab1ed5b538e9914783874.jpg",
  "previews": {
    "small": "http://my-project/media/cache/view1/rc/qcJ6p4ur/uploads/images/5ab/1ed/5b5/5ab1ed5b538e9914783874.jpg"
  }
}

下载简单文件

要创建新文档,您可以发送一个新的 post 请求,带有参数 documentFile

curl -X POST -H "Authorization: Bearer your_token" -H "Content-Type: multipart/form-data" -F "documentFile=@/path/for/your/file.jpg" http://my-project/api/documents

MediaServer API 返回源文档的路径

{
    "id": 1,
    "createdAt": "2018-07-28T18:35:47+03:00",
    "updatedAt": "2018-07-28T18:35:47+03:00",
    "name": "5b5c8d539fd93267715216.png",
    "size": 536793,
    "path": "http://media-server/uploads/documents/5b5/c8d/539/5b5c8d539fd93267715216.png"
}

内容概览

这是一个symfony 4骨架,包含以下组件:

  • ext-iconv
  • gesdinet/jwt-refresh-token-bundle
  • gfreeau/get-jwt-bundle
  • guzzlehttp/guzzle
  • lexik/jwt-authentication-bundle
  • liip/imagine-bundle
  • nelmio/cors-bundle
  • sensio/framework-extra-bundle
  • symfony/console
  • symfony/flex
  • symfony/form
  • symfony/framework-bundle,
  • symfony/lts
  • symfony/maker-bundle
  • symfony/orm-pack
  • symfony/security-bundle,
  • symfony/swiftmailer-bundle
  • symfony/twig-bundle
  • symfony/validator
  • symfony/yaml
  • vich/uploader-bundle

反馈

许可协议 MIT