Color Modes

MagickCache:効率的な画像キャッシュ

MagickCacheは、画像、画像シーケンス、ビデオ、オーディオ、またはメタデータをローカルフォルダにキャッシュするための安全な方法とツールを提供します。すべてのコンテンツは、効率的な取得のためにメモリマップされます。画像の一部を取得することで、さらなる効率化が可能です。コンテンツは永続化することも、有効期限(TTL)を割り当てて、TTLを超えたときにコンテンツを自動的に期限切れにすることもできます。 MagickCacheは、数十億枚の画像まで事実上無制限のコンテンツをサポートしているため、Web画像サービスとして適しています。

MagickCacheは、ImageMagickと連携して動作します。MagickCacheをダウンロードしてインストールしてください。次に、キャッシュを作成し、画像、ビデオ、および関連するメタデータを入力します。

MagickCacheの作成

コンテンツを保存および取得するための場所が必要です。ローカルファイルシステムにキャッシュを作成しましょう。

$ magick-cache -passkey passkey.txt create /opt/magick-cache

ここで、`passkey.txt`にはキャッシュのパスキーが含まれています。パスキーを紛失しないでください。パスキーがないと、キャッシュ内のコンテンツを識別、期限切れ、または削除できません。

MagickCacheの作成は一度だけ必要です。ただし、異なるパスで複数のMagickCacheを作成できます。

MagickCacheを作成したら、画像、ビデオ、オーディオ、またはメタデータを含むコンテンツをキャッシュに設定します。

MagickCacheにコンテンツを入れる

新しく作成したキャッシュに映画のキャスト画像を追加しましょう。

$ magick-cache put /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson 20210508-rebecca-ferguson.jpg

画像識別子は、*プロジェクト*/*タイプ*/*リソースパス*で構成されるIRIであることに注意してください。この例では、プロジェクトはmovies、タイプはimage、リソースパスはmission-impossible/cast/rebecca-fergusonです。パスは、キャッシュリソースを一意に識別します。同じリソースパスに2つの異なる画像を保存することはできません。mission-impossible/cast/20210508-rebecca-ferguson-1mission-impossible/cast/20210508-rebecca-ferguson-2のように使用してください。

次に、リソースパスキーと有効期限を2日に設定します。2日目以降はいつでも、expire関数を使用して画像が自動的に削除されます。画像を取得、期限切れ、または削除するには、同じリソースパスキーを使用する必要があります。

$ magick-cache -passkey passkey.txt -ttl "2 days" put /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson 20210508-rebecca-ferguson.jpg

ここで、passkey.txtにはリソースパスキーが含まれています。パスキーを紛失しないでください。パスキーがないと、所有するリソースを取得、識別、期限切れ、または削除できません。

リソースパスキーを使用すると、あなたとキャッシュ所有者だけが画像にアクセスできます。キャッシュ所有者がそのコンテンツを表示できないようにするには、次の方法でスクランブルします。

$ magick-cache -passkey passkey.txt -passphrase passphrase.txt -ttl "2 days" put /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson 20210508-rebecca-ferguson.jpg

BLOBとメタデータは、キャッシュにプレーンテキストで保存されることに注意してください。スヌーピングを防ぐために、コンテンツをキャッシュに保存する前にスクランブルしてください。

MagickCacheからコンテンツを取得する

最終的にはコンテンツを取得する必要があります。元のキャスト画像をキャッシュから取得しましょう。

$ magick-cache -passkey passkey.txt get /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson rebecca-ferguson.png

元の画像はJPEG形式でキャッシュに配置されていることに注意してください。ここでは、画像を抽出するときにPNG形式に便利に変換します。

-extractオプションは、画像を取得するときに便利です。画像の一部を抽出するには、タイルの幅、高さ、およびオフセットを指定します。

$ magick-cache -passkey passkey.txt -extract 100x100+0+0 get /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson rebecca-ferguson.png

代わりにサイズ変更するには、オフセットを指定しないでください。

$ magick-cache -passkey passkey.txt -extract 100x100 get /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson rebecca-ferguson.png

画像がスクランブルされている場合は、パスフレーズを提供してスクランブルを解除します。

$ magick-cache -passkey passkey.txt -passphrase passphrase.txt get /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson rebecca-ferguson.png

MagickCacheからコンテンツを削除する

コンテンツを明示的に削除できます。

$ magick-cache -passkey passkey.txt delete /opt/magick-cache movies/image/mission-impossible/cast/rebecca-ferguson

または、有効期限が切れた(それぞれの有効期限を超えた)すべてのキャスト画像を削除できます。次のコマンドを試してください。

$ magick-cache -passkey passkey.txt expire /opt/magick-cache movies/image/mission-impossible/cast

MagickCacheコンテンツの識別

おそらく、あなたが所有するすべてのコンテンツを識別したいと思うでしょう。

$ magick-cache -passkey passkey.txt identify /opt/magick-cache movies/image/mission-impossible/cast
movies/image/mission-impossible/cast/rebecca-ferguson[1368x912] 406B 1:0:0:0 2021-05-30T17:41:42Z
identified 1 resources

各エントリには、IRI、画像の画像寸法、バイト単位のコンテンツ範囲、有効期限、リソースの有効期限が切れているかどうか( `*`で示されます)、および作成日が含まれます。

他の人は、コンテンツをあなたのコンテンツと一緒にキャッシュに保存できます。ただし、そのコンテンツはあなたには利用できません。秘密のパスキーによって決定される、所有していないコンテンツを取得、識別、期限切れ、または削除することはできません。

MagickCacheの所有者は、たとえば、次のコマンドを使用して、所有しているコンテンツを含むすべてのコンテンツを取得、識別、期限切れ、または削除できます。

$ magick-cache -passkey passkey.txt identify /opt/magick-cache /

期限切れのリソースにはアスタリスクが付いていることに注意してください。

MagickCacheは画像だけのものではありません

imageタイプの他に、画像コンテンツを元の形式、ビデオ、またはオーディオをコンテンツタイプblobとして、またはメタデータをコンテンツタイプmetaとして保存できます。

$ magick-cache -passkey passkey.txt put /opt/magick-cache movies/blob/mission-impossible/cast/rebecca-ferguson 20210508-rebecca-ferguson.mp4

または

$ magick-cache -passkey passkey.txt put /opt/magick-cache movies/meta/mission-impossible/cast/rebecca-ferguson 20210508-rebecca-ferguson.txt

画像は、ImageMagickが理解できる形式である必要があります。メタデータはテキストである必要があります。BLOBは、画像、ビデオ、オーディオ、またはバイナリファイルを含む任意のコンテンツにすることができます。

MagickCacheの削除

MagickCacheの所有者は、キャッシュ内のすべてのコンテンツを完全に削除できます。

$ magick-cache -passkey passkey.txt delete /opt/magick-cache /

注意してください、このコマンドの後、キャッシュされたコンテンツは完全に失われます。

セキュリティ

MagickCacheのセキュリティは、暗号的に強力ではありません。代わりに、各リソースに一意のハッシュを生成し、リソースIDを検出できないようにします。リソースは、それぞれのパスキーを提示できる限り、キャッシュのユーザーとキャッシュ所有者の両方がアクセスできます。また、MagickCacheディスクパスにアクセスするための十分な権限を持つすべての人がアクセスできます。