szgislle

szgislle

生命不息,折腾不止!

Oracleオブジェクトストレージをブログの画像ストレージとして使用する(1)

先行確認:

oracle_photo_blog.gif

專業白嫖黨として、Oracle の 4 つの無料チキンだけでは満足できません。20GB の無料スペースを持つオブジェクトストレージも活用する必要があります。最近、数年ぶりにブログを再開しましたが、ちょうどブログの画像ホスティングとしても使用できます。

前提条件#

  1. Oracle Cloud アカウント(クレジットカード認証が必要で、中国本土では申請が困難になっています)
  2. 適切な科学的な環境

Oracle Object Storage バケットの準備#

  1. Oracle Cloud のオブジェクトストレージ管理画面にアクセスし、新しいバケットを作成します。
    image.png
    デフォルトの設定で作成してください。作成後、可視性を編集し、パブリックまたはプライベートを選択できます。
    パブリック:すべてのファイルが読み取り可能
    プライベート:事前に検証されたリクエストを使用して一部のファイルを公開できます(この方法をおすすめします)
    image.png
  2. 事前に検証されたリクエストを作成します。
    image.png
    オブジェクトにプレフィックスを指定し、プレフィックスにはimagesを入力します。後で Picgo の設定でこのプレフィックスを一致させる必要があるため、それ以外の場合はアクセスタイプは読み取りのみに設定し、有効期限はできるだけ長く設定してください。
    image.png
    URL をコピーして保存し、これはバケットの対応するプレフィックスディレクトリへのアクセスの BaseURL です。
    image.png
    画像をアップロードしてアクセスできるかどうかを試してみてください。
    image.png

バケットのアクセス設定により、URL パスでのアクセスはできません。
image.png
先ほど作成した事前に検証されたリクエストの URL プレフィックスに置き換える必要があります。
https://objectstorage.ap-chuncheon-1.oraclecloud.com/p/xxx/n/{namespace}/b/blog/o/images/2022-05-23.png
3. バケットのエンドポイント
Oracle のオブジェクトストレージのエンドポイント形式はhttps://{namespace}.compat.objectstorage.{region}.oraclecloud.com/です。

  • namespace: バケット情報の名前空間フィールド
    image.png

  • region: これは Oracle アカウントのリージョンで、通常は Oci のコンソールアドレスに表示されます。私の場合、春川はap-chuncheon-1です。
    image.png

  1. Oracle アカウントの Ak と Sk を申請する
    右上のアイコンをクリックして、「マイプロファイル情報」に移動し、「クライアントキー」オプションを選択して「キーの生成」をクリックします。
    image.png
    生成されたキーも保存してください。このキーはアカウントのSecretAccessKeyです。
    image.png
    AccessKeyIDはリストページにありますので、同様にコピーして保存してください。
    image.png

Picgo と s3 プラグインのインストールと設定#

準備が整ったので、次は画像ホスティングツールの設定を開始します。2 つの選択肢があります:

  1. GUI インターフェースを持つ:PicGo
  2. CLI コマンドライン操作:PicGo-Core
    個人の好みによりますが、私はコマンドラインに慣れているので、2 番目の選択肢を選びました。設定は同じですが、GUI が提供されているかどうかの違いです。

Node 環境のインストール#

nodejs公式ウェブサイトからインストールしてください。

Picgo-Core のインストール#

npm install picgo -g

または Yarn を使用する場合

yarn global add picgo

インストールを確認するために以下のコマンドを実行してください

picgo -h

以下の結果が表示されれば、インストールが成功しています。
image.png

S3 プラグインの追加#

S3 プラグインは、理論的にはすべての S3API 互換のオブジェクトストレージをサポートしています。詳細は、プラグインのホームページを参照してください。

picgo add s3

インストールが成功したら、設定ファイルに以下の情報が含まれているはずです。
image.png

S3 プラグインの設定#

{
  "picBed": {
    "uploader": "aws-s3",
    "current": "aws-s3",
    "aws-s3": {
      "accessKeyID": "{ak}",
      "secretAccessKey": "{sk}",
      "bucketName": "{bucket}",
      "region": "{region}",
      "uploadPath": "images/{year}/{month}/{md5}.{extName}",
      "endpoint": "https://{namespace}.compat.objectstorage.{region}.oraclecloud.com/",
      "acl": "public-read",
      "pathStyleAccess": true,
      "urlPrefix": "https://objectstorage.ap-chuncheon-1.oraclecloud.com/p/{publicKey}/n/{namespace}/b/blog/o",
      "disableBucketPrefixToURL": true
    }
  },
  "picgoPlugins": {
    "picgo-plugin-s3": true
  }
}

上記の設定では、uploadPathフィールド以外の場所のプレースホルダー "{ }" を対応する値に置き換えてください:

  • ak: 先ほど申請した Oracle アカウントのAccessKeyID
  • sk: 先ほど申請した Oracle アカウントのSecretAccessKey
  • bucket: バケット名、私の場合はblog
  • region: 先ほど取得したregion地域、私の場合はap-chuncheon-1
  • uploadPath のプレースホルダーは変更する必要はありません。また、プレフィックスの "images" が先ほどの事前に検証されたリクエストのプレフィックスと一致していることに注意してください。
  • namespace: 先ほど取得した namespace
  • urlPrefix: このフィールドは事前に検証されたリクエストで申請した URL のプレフィックスです。
  • disableBucketPrefixToURL: このフィールドは必ず true にする必要があります。そうしないと、アップロードリンクにバケットのプレフィックスが自動的に追加され、アクセスに失敗します。詳細はこのIssueを参照してください。

設定の検証#

スクリーンショットツールでクリップボードにスクリーンショットを撮影してください。

picgo upload

クリップボードの画像をアップロードします。

image.png

画像リンクにアクセスできることを確認します。
image.png
これで、基本的な画像ホスティングの機能が実現されました。どのエディターでも画像ホスティングを使用できますが、少し手間がかかります。エディターでコピーしてアップロードし、成功したらすぐに画像が表示されるとより良い体験になります。次に、Obsidian と対応するプラグインを使用して上記の機能を実現します。

Obsidian のインストールと設定#

Obsidianをダウンロードしてインストールします。

セーフモードをオフにして「Image auto upload Plugin」プラグインを検索してインストールします。
image.png

プラグインの設定
image.png
デフォルトのアップローダーはPicGo-Coreを選択します。

まとめ#

これで、Oracle をオブジェクトストレージとして使用するチュートリアルが完了しましたが、まだいくつかの欠点があります。たとえば、画像のアクセス効果が理想的ではないため、甲骨文のオブジェクトストレージは CDN をサポートしていないため、異なる地域でのアクセス効果が異なります。次の章では、CloudFlare を使用して画像のアクセスを高速化する方法と、特殊な場合に GIF をアップロードする方法について説明します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。