Menggunakan Linode S3 untuk Storage Strapi

Cara menggunakan linode s3 untuk provider penyimpanan file image, video, di strapi

Ceritanya kemarin buat cms menggunakan strapi, tapi kita gak punya storage di aws. dimana plugin standard untuk strapi menggunakan aws s3.
Tapi kita punya linode Object Storage (s3). Berikut panduan buat kamu yang juga kebetulan menggunakan linode dan mau membuat cms menggunakan strapi

Apa yang Kamu Butuhkan?

Sebelum kita mulai, pastikan kamu sudah punya:

  1. Akun Linode (kalau belum, daftar dulu ya!).

  2. Proyek Strapi yang sudah terpasang.

Langkah-langkah Integrasi Linode S3 di Strapi

1. Instal Paket

Pertama-tama, kita perlu menginstal paketstrapi-provider-upload-linode. Ini adalah cara untuk menghubungkan Strapi dengan Linode S3. Pilih salah satu perintah di bawah ini sesuai dengan manajer paket yang kamu gunakan:

Kalau pakai npm, ketik:

npm i strapi-provider-upload-linode

Kalau pakai yarn, ketik:

yarn add strapi-provider-upload-linode

2. Siapkan Konfigurasi Environment

Setelah itu, kita perlu bikin file.envdi folder proyek Strapi kamu. Di dalam file ini, tambahkan konfigurasi untuk Linode. Berikut contohnya:

LI_OBJECT_S3_ACCESS_KEY=
LI_OBJECT_S3_SECRET_KEY=
LI_OBJECT_S3_ENDPOINT=
LI_OBJECT_S3_BUCKET_NAME=
LI_OBJECT_S3_DIRECTORY=  # opsional
LI_OBJECT_S3_CDN=        # opsional

Jangan lupa untuk mengisi nilai-nilai di atas dengan informasi dari akun Linode kamu. YangLI_OBJECT_S3_DIRECTORYdanLI_OBJECT_S3_CDNitu opsional, jadi bisa kamu lewati kalau tidak diperlukan.

3. Update Konfigurasi Plugin

Sekarang, kita perlu mengupdate konfigurasi di./config/plugins.js. Buka file tersebut dan tambahkan kode ini:

module.exports = ({ env }) => ({

  // ...

  upload: {
    config: {
      provider: "strapi-provider-upload-linode",
      providerOptions: {
        key: env("LI_OBJECT_S3_ACCESS_KEY"),
        secret: env("LI_OBJECT_S3_SECRET_KEY"),
        endpoint: env("LI_OBJECT_S3_ENDPOINT"),
        space: env("LI_OBJECT_S3_BUCKET_NAME"),
        directory: env("LI_OBJECT_S3_DIRECTORY"), // opsional
        cdn: env("LI_OBJECT_S3_CDN"), // opsional
      },
    },
  },

  // ...
});

4. Atur Middleware Keamanan

Nah, untuk bisa lihat thumbnail file dengan benar di Media Library, kita perlu sedikit ubah pengaturan keamanan. Buka file./config/middlewares.jsdan ganti bagianstrapi::securitydengan kode berikut:

module.exports = [

  // ...

  {
    name: "strapi::security",
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          "connect-src": ["'self'", "https:"],
          "img-src": [
            "'self'",
            "data:",
            "blob:",
            "market-assets.strapi.io",
            "yourBucketName.yourRegion.linodeobjects.com", // ganti di sini
          ],
          "media-src": [
            "'self'",
            "data:",
            "blob:",
            "market-assets.strapi.io",
            "yourBucketName.yourRegion.linodeobjects.com", // ganti di sini
          ],
          upgradeInsecureRequests: null,
        },
      },
    },
  },

  // ...
];

GantiyourBucketNamedanyourRegiondengan nama bucket dan region yang sesuai dengan pengaturan Linode kamu.

5. Restart Strapi

Setelah semua langkah di atas selesai, saatnya untuk restart server Strapi kamu. Ketik perintah ini di terminal:

npm run develop

atau

yarn develop

Sekarang kamu sudah berhasil menghubungkan Linode S3 dengan Strapi! Kamu bisa mulai meng-upload file dan mengelola media dengan lebih mudah. Jika ada masalah, jangan ragu untuk cek kembali konfigurasi yang sudah kamu buat atau lihat dokumentasi resmi Strapi dan Linode. Semoga sukses, dan selamat mencoba!