ftm-pm / media-server
MediaServer 是一个微应用,接收带有滤镜的图像文件,并返回该图像的路径以及应用了滤镜的图像集合。
Requires
- php: ^7.1.3
- ext-iconv: *
- gesdinet/jwt-refresh-token-bundle: ^0.3.2
- gfreeau/get-jwt-bundle: ^2.0
- guzzlehttp/guzzle: ^6.3
- lexik/jwt-authentication-bundle: ^2.4
- liip/imagine-bundle: 2.0.x-dev
- nelmio/cors-bundle: ^1.5
- sensio/framework-extra-bundle: ^5.1
- symfony/console: ^4.0
- symfony/flex: ^1.0
- symfony/form: ^4.0
- symfony/framework-bundle: ^4.0
- symfony/lts: ^4@dev
- symfony/maker-bundle: ^1.0
- symfony/monolog-bundle: ^3.2
- symfony/orm-pack: ^1.0
- symfony/security-bundle: ^4.0
- symfony/serializer: ^4.0
- symfony/swiftmailer-bundle: ^3.2
- symfony/twig-bundle: ^4.0
- symfony/validator: ^4.0
- symfony/yaml: ^4.0
- vich/uploader-bundle: ^1.7
Requires (Dev)
- symfony/dotenv: ^4.0
- symfony/var-dumper: ^4.0
Conflicts
This package is not auto-updated.
Last update: 2020-01-22 19:03:38 UTC
README
MediaServer 是一个微应用,接收带有滤镜的图像文件(或简单文件)并返回该图像的路径以及应用了滤镜的图像集合(或简单文件的路径)。
俄语文档在此。
设置
MediaServer 是一个symfony/skeleton 应用程序,带有上传和裁剪图像的包。以下是一些包
- VichUploaderBundle - 上传图像
- LiipImagineBundle - 创建预览图像
- LexikJWTAuthenticationBundle - 授权 JWT
- 所有包
安装
运行 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
反馈
- 创建新问题
- 在网站上提问。
- 发送邮件至fafnur@yandex.ru
许可协议 MIT。