問題タブ [liipimaginebundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1835 参照

php - Symfony2 画像操作

私は何時間も研究してきましたが、Symfony2 内で効果的な画像操作を行う方法を理解できません。Liip Imagine バンドルは最適な方法のようですが、開発中に適切に機能させることができないようです。

私が欲しいもの:

  • アップロード時に、できれば%ベースの画像サイズを作成します(画像が巨大な場合、キャッシュ中にその人が待機することを望まないため、画像のリクエストを待機することをお勧めします)
  • 画像に透かしを作成する
  • 画像、サイズ変更、DI などからメタを取得します。

私は以下を見てきました:

構成:

試行された小枝:

編集!!

そこで、次のコードを使用して、貼り付けた上記の投稿からアップロードしようとしました。

そして今、この行$image = $dataManager->find($filter, $path)は次のエラーをスローしています:

画像のアップロード/ファイル/pic_05052015_827_c6d4b.jpg の MIME タイプは、image/xxx got inode/x-empty である必要があります。

私はこの深いイメージのいくつかに少し戸惑っています.

0 投票する
1 に答える
689 参照

symfony - ホスティング後のliipImagineBundleのトラブル

symfony2 では、liipImagineBundle を使用してその場でサムネイルを作成しています。以前はローカル サーバーで問題なく動作していましたが、共有サーバーのサイトをホストした後、問題が発生しました。hereおよびhereで説明されているのと同じ問題が発生しています。つまり、ソースが ではありませhttp://my_domain.com/media/cache/resolve/my_thumb/uploads/images/entry/DSC_04121.jpghttp://out-of-the-nest.com/media/cache/my_thumb/uploads/images/entry/DSC_04121.jpg

この 2 つの質問のおかげで、問題の原因はわかりましたが、提案された解決策は役に立ちません。構成ファイルや php.ini にアクセスできません。filezilla でキャッシュのパーミッションを変更してみましたが、あまり変わりません。また、symfony2 のドキュメントに記載されているように、 app.php と app_dev.php で andumask(0002);を使用してみましたが、役に立ちませんでした。umask(0000);

ここで何をすべきか本当にわかりません。誰か助けてもらえますか?

編集

結局のところ、許可の問題ではない可能性があります。Symfony は NotLoadableException: Source image not found in "/home/outoftheoo/app/../web/uploads/images/entry/DSC_04121.jpg"、web フォルダーが存在しないために予想される a をスローします。ovh が期待するものであるため、名前を www に変更しました。私はliipを設定して、それが(とにかくだと思います)

config.yml にありますが、十分ではないようです

PS: 関係がある場合、問題の共有ホスティング サーバーは OVH によって提供されます。

編集 2

問題が見つかりました。config.yml欠けていた:

0 投票する
1 に答える
325 参照

php - 要件 AppKernel.php の symfony バンドル

symfony2 のベンダーバンドルを作成しました

バンドルが必要です (liip/imagine-bundle など)。

composer.php に必要な行を挿入します。

しかし、エラーがあります-バンドル「LiipImagineBundle」が存在しないか、有効になっていません。AppKernel.php ファイルの registerBundles() メソッドに追加するのを忘れたのではないでしょうか?

私は AppKernel.php に追加できますが、それは良い習慣ではないと思います。

ベンダー バンドルで要件バンドルを使用するにはどうすればよいですか?

0 投票する
1 に答える
1001 参照

php - S3 (AWS SDK v3) を使用して、LiipImagineBundle によって生成された画像をキャッシュする方法

S3 Cache Resolver を使用して、キャッシュされたサムネイルを S3 にアップロードしようとしていますが、LiipImagineBundle奇妙な問題が発生しています。

AWS SDK v ^3.2 を使用しています。

私は Symfony2 を使用しており、私の で、クラスをservices.yml構成し、それを使用してクライアントを作成しました。Aws\Credentials\CredentialsAws\S3\S3Client

すべて正常に動作し、ファイルを S3 にアップロードできます。

の構成LiipImagineBundle: AWS SDK 2 にのみ適用される構成ルールがあり、キャッシュ リゾルバーを使用して「誤検知」を引き起こすようです。LiipImagineBundleaws_s3

少なくとも 3 つの異なる構成を試しました。

構成 1: AWS SDK 2 の場合

これにより例外がスローされます。

テンプレートのレンダリング中に例外がスローされました (「インスタンス プロファイル メタデータ サーバーから資格情報を取得中にエラーが発生しました。(cURL エラー 28: 1006 ミリ秒後に接続がタイムアウトしました ( http://curl.haxx.se/libcurl/c/を参照)。 libcurl-errors.html ))") src/AppBundle/Resources/views/Store/show.html.twig の 135 行目。

これは、認証情報を検索している AWS SDK によってスローされ、それらが見つかりません。

したがって、このアプローチは機能していないようです。

構成 2: 使用Aws\Credentials(AWS SDK 3)

資格情報を に渡す方法S3Clientは、 のインスタンスを渡すことですAws\Credentials。私はサービスを介してこれを行うので、他のサービスで同じ資格情報を再利用できます (そして、それを使用してファイルを S3 にアップロードするのと同じように機能します!):

とでconfig.yml

ご覧のとおり、Credentialsサービスをに渡しますが、次のLiipImagineBundleエラーが発生します FROM Aws\ClientResolver:

ClientResolver.php 行 296 の InvalidArgumentException: 「資格情報」に指定された構成値が無効です。Aws\Credentials\CredentialsInterface|array|bool|callableが必要ですが、文字列 '@shq.amazon.s3Credentials' (長さ = 25)を取得しました

資格情報: (Aws\Credentials\CredentialsInterface|array|bool|callable)

要求の署名に使用される資格情報を指定します。Aws\Credentials\CredentialsInterface オブジェクト、「キー」、「シークレット」、およびオプションの「トークン」キーの連想配列を提供して、falsenull 資格情報を使用するか、資格情報を作成するか null を返すために使用される呼び出し可能な資格情報プロバイダーを提供します。組み込みの認証情報プロバイダーのリストについては、Aws\Credentials\CredentialProvider を参照してください。認証情報が提供されていない場合、SDK は環境から認証情報をロードしようとします。

Credentialsによって参照されるクラスを渡す代わりに、@shq.amazon.s3Credentials単純に文字列を渡すように見える@shq.amazon.s3CredentialsためClientResolver、渡されたパラメーターが正しくないことを正しく報告します。

したがって、この構成も機能しません。

設定 3: 配列を渡すS3Client(AWS SDK 3)

をインスタンス化する 3 番目の方法はS3Client連想配列をハードコードされた資格情報に渡すことです。

だから私はこの構成を試しました:

しかし、今回は からエラーを受け取りました。これLiipImagineBundleは、配列をパラメーターとして受け入れないようです。

ScalarNode.php 行 36 の InvalidTypeException: パス「liip_imagine.resolvers.cache_thumb_purchase.aws_s3.client_config.HERE_THERE_IS_DIRECTLY_MY_AWS_KEY」のタイプが無効です。 スカラーが必要ですが、配列を取得しました。

バンドルの構成ルールを更新する必要があると思いますが、そのようなことにはまだ自信がないので、これを行う方法がわかりません。

LiipImagineBundleでは、クラスを参照する文字列の代わりに / Symfony にクラスを渡すようにするにはどうすればよいCredentialsでしょうか? 私のせいですか、それとも何かが壊れていLiipImagineBundleますか?

(また、パスで「キー」という用語を使用する代わりに、私が理解できない奇妙なことは、「キー」の値、つまりを使用します。そのため、次のようなパスではなく、HERE_THERE_IS_DIRECTLY_MY_AWS_KEYこのようなパスを報告します-私のほうが正しいようですよね?)。liip_imagine.resolvers.cache_thumb_purchase.aws_s3.client_config.HERE_THERE_IS_DIRECTLY_MY_AWS_KEYliip_imagine.resolvers.cache_thumb_purchase.aws_s3.client_config.key