MichaelJwright / aws-rekognition
Laravel 的 AWS Rekognition 包
Requires
- aws/aws-sdk-php: ~3.0
Requires (Dev)
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~5.7
This package is not auto-updated.
Last update: 2023-08-23 08:33:13 UTC
README
Rekognition API PHP SDK 的 Laravel 包/外观。
此仓库实现了一个简单的 AWS Rekognition 客户端服务提供者,并使其通过 Laravel >= 5 的外观轻松访问。
- 现在更新了 Rekognition 视频 (startLabelDetection, getLabelDetection, startContentModeration, getContentModeration, startCelebrityRecognition, getCelebrityRecognition)
有关更多信息,请参阅AWS Rekognition。
要求
在AWS上创建一个账户,并注意您的 API 密钥。
使用 Composer 安装
在您的终端应用程序中使用 cd 命令进入您的 laravel 项目的根目录,然后使用 composer 将项目作为依赖项。
composer require michaeljwright/aws-rekognition
这将向您的 composer.json 添加以下行,并将项目及其依赖项下载到您的项目 ./vendor 目录中
// ./composer.json { "name": "michaeljwright/larareko-demo", "description": "A dummy project used to test the Laravel Larareko (AWS Rekognition) Facade.", // ... "require": { "php": ">=5.5.9", "laravel/framework": "5.2.*", "michaeljwright/aws-rekognition": "0.1*", // ... }, //... }
使用方法
为了使用静态接口,我们必须自定义应用程序配置,以告诉系统它可以在哪里找到新的服务。打开文件 config/app.php 并添加以下行 ([a],[b])
// config/app.php return [ // ... 'providers' => [ // ... /* * Package Service Providers... */ MichaelJWright\Rekognition\RekognitionServiceProvider::class, // [a] /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, ], // ... 'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, // ... 'Rekognition' => 'MichaelJWright\Rekognition\RekognitionFacade', // [b] 'Hash' => Illuminate\Support\Facades\Hash::class, // ... ], ];
发布供应商
aws-rekognition 需要一个连接配置。要开始,您需要运行以下命令发布所有供应商资产
php artisan vendor:publish
这将创建一个 config/rekognition.php 文件在您的应用中,您可以修改它来设置配置。确保在升级后检查与原始配置文件的更改。
现在您应该可以在应用程序中使用外观。例如
class LabelDetectionImage extends Model { /** * Upload image to S3 * * @param Illuminate\Http\UploadedFile $file * * @return string */ public function upload(UploadedFile $file) : string { $name = time() . $file->getClientOriginalName(); \Rekognition::uploadImageToS3(file_get_contents($file), null, self::BUCKET, $name); return $name; } }
视频标签识别示例
// FIRST call startLabelDetection to create a rekognition job $config = [ 'MinConfidence' => 80, //set confidence level for probability of correct labels 'Video' => [ 'S3Object' => [ 'Bucket' => 'YOUR_BUCKET_NAME', 'Name' => 'YOUR_VIDEO_FILE_NAME', ], ], ]; $job = \Rekognition::startLabelDetection($config); //start a job in rekognition for specific video file dd($job['JobId']); //output job id so you can use it to get the labels // THEN call getLabelDetection to get the labels for the specific job $config = [ 'JobId' => 'YOUR_JOB_ID', 'SortBy' => 'NAME', //set to whatever you want to sort the labels by ]; $job = \Rekognition::getLabelDetection($config); dd($job['Labels']); //output the labels
测试
单元测试是用 PHPunit 和 orchestra/testbench 创建的,它们可以用 ./vendor/bin/phpunit 运行。
贡献
找到您可以帮忙的地方并完成它。开源是关于协作和开放参与的。尽量使您的代码看起来像已有的代码或更好,并提交拉取请求。此外,如果您有任何改进代码或改进范围和功能的想法,请联系任何贡献者。
许可
MIT 许可。