Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

AWS SDK for JavaScript v3 を使って、S3 から取ってきて S3 に置く

JavaScript 版の AWS SDK は v3 が出ていて、たとえば、AWS Lambda で Node.js 18.x をランタイムに選択した場合 SDK を使うならこれがデフォルトになっている。

公式ページ: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/

AWS SDK v3 を使うときの S3 から取ってきて保存したり、S3 にアップロードしたりするときのメモ。

ちなみに ReadableStream の使い方含めよくわからなかったところは Bing のチャット AI に助けてもらった。AI すごい。

公式サンプルコード: https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v3/developer-guide/javascript_s3_code_examples.html

import { createWriteStream, createReadStream } from "fs";
import { S3Client, GetObjectCommand, PutObjectCommand } from "@aws-sdk/client-s3";
const s3Client = new S3Client({ region: "ap-northeast-1" });

async function run() {
    const data = await s3Client.send(new GetObjectCommand({
        Bucket: "mybucket",
        Key: "foo/bar/gazou.png",
    }));
    const writeStream = createWriteStream("/tmp/gazou.png");
    data.Body.pipe(writeStream);
    await new Promise((resolve, reject) => { // これが必要
        writeStream.on("finish", resolve);
        writeStream.on("error", reject);
    });

    // todo: process

    const readStream = createReadStream("/tmp/kakou.png");
    await s3Client.send(new PutObjectCommand({
        Bucket: "mybucket",
        Key: "foo/bar/kakou.png",
        Body: readStream,
    }));
}

run();

memo.txt を脱却して、Obsidian + Google ドライブを試してみている

いままでメモ系のことはひたすら memo.txt に追記していくという恐ろしく単純なことしかしていなかったのだけど、
さすがにしんどくなってきたので心機一転、メモアプリを使うことにした。

ちらと調査したところ、Obsidian が良さそうだったので、試してみている。

Vault という単位でメモたちが管理されていて、その Vault 自体をクラウドストレージである Google ドライブに保存して、それを読み込む形で、Windows10 のメイン機と Mac Book Air のサブ機間での同期もできた。

とりあえずはあんまり頑張らない感じでいままでの memo.txt を振り返りながら、将来を見越してタグもつけつつ Obsidian に移していってみようと思う。

【2023-02-27 追記】
Obsidan ではなくて、Obsidian だった。ミンサガのオブシダンソードに引っ張られてた。