LoginSignup
2
1

More than 3 years have passed since last update.

DigitalOcean SpacesをMisskeyのオブジェクトストレージとして使う

Posted at

必要なもの

  • DigitalOcean のアカウント
  • DigitalOcean Spaces の Bucket
  • Misskey インスタンス
  • s3cmd が使えるパソコン

Anonymous Userでもファイルをダウンロードできるようにする

BucketにPolicy適用
これが無いとアップロードしたファイルを見ることができない

下の内容をpolicy.jsonとして保存する

{
  "Statement": [
    {
      "Sid": "Granting Read-Only Permission to an Anonymous User",
      "Effect": "Allow",
      "Principal": { "AWS": "*" },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<Bucket名>/*"
    }
  ]
}

policy.jsonBucketのPolicyとしてセット

$ s3cmd setpolicy policy.json s3://<Bucket名>/

確認

$ s3cmd info s3://mybucket
s3://mybucket/ (bucket):
   Location:  sgp1
   Payer:     BucketOwner
   Expiration Rule: none
   Policy:    b'{\n  "Statement": [\n    {\n      "Sid": "Granting Read-Only Permission to an Anonymous User",\n      "Effect": "Allow",\n      "Principal": { "AWS": "*" },\n      "Action": "s3:GetObject",\n      "Resource": "arn:aws:s3:::mybucket/*"\n    }\n  ]\n}\n'
   CORS:      b'<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule><AllowedMethod>GET</AllowedMethod><AllowedMethod>HEAD</AllowedMethod><AllowedOrigin>*</AllowedOrigin><MaxAgeSeconds>0</MaxAgeSeconds></CORSRule></CORSConfiguration>'
   ACL:       1234567: FULL_CONTROL

ローカルストレージからの移行

  1. ローカルのファイルをBucketにアップロード
  2. DB内のURLをBucketのものに置き換える

ファイルアップロード

Misskeyのホームディレクトリで

$ s3cmd put -r files s3://<Bucket名>

DB操作

$ pg_dump > misskey.sql

テキストエディタでmisskey.sqlを開けて、すべての//domain.tld/files を BucketのURLに置き換える

すべて終わったら

$ sudo -u postgres psql
> DROP DATABASE misskey;
> CREATE DATABASE misskey OWNER = misskey;
> \q
$ sudo -u misskey -i
$ psql < misskey.sql

あとはMisskeyを起動させて、管理者ページからオブジェクトストレージの設定をすればおk

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1