MichaelJwright/aws-rekognition

此包已被废弃,不再维护。作者建议使用 aws-sdk-php-laravel 包。

Laravel 的 AWS Rekognition 包

v0.2 2018-03-21 14:26 UTC

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 许可。