# Image Server Remaining: - try American Cloud - dockerize - images.timesafari.app - pretty-up the client, show thumbnail ## setup ``` sh <(curl https://pkgx.sh) +pnpm sh pnpm install # create the directory for files that are being uploaded; should stay empty afterward mkdir uploads pnpm run migrate ``` Now set up an AWS S3 bucket & Infura project, and manually set these variables inside a .env file: ``` AWS_ACCESS_KEY= AWS_SECRET_KEY= AWS_REGION= INFURA_PROJECT_ID= ``` If you use a domain with a web redirect, use a permanent redirect (since browsers complained with PR_END_OF_FILE_ERROR about a secure connection when it's temporary). ## dev ``` node server.js ``` ## test ```shell # run this first command in a directory where `npm install did-jwt` has been run CODE='OWNER_DID="did:ethr:0x0000694B58C2cC69658993A90D3840C560f2F51F"; OWNER_PRIVATE_KEY_HEX="2b6472c026ec2aa2c4235c994a63868fc9212d18b58f6cbfe861b52e71330f5b"; didJwt = require("did-jwt"); didJwt.createJWT({ exp: Math.floor(Date.now() / 1000) + 60, iat: Math.floor(Date.now() / 1000), iss: OWNER_DID }, { issuer: OWNER_DID, signer: didJwt.SimpleSigner(OWNER_PRIVATE_KEY_HEX) }).then(console.log)' JWT=`node -e "$CODE"`; curl -X POST -H "Authorization: Bearer $JWT" -F "image=@./test.png" http://localhost:3001/image JWT=`node -e "$CODE"`; curl -X DELETE -H "Authorization: Bearer $JWT" http://localhost:3001/image/https%3A%2F%2Fgifts-image-test.s3.amazonaws.com%2F4599145c3a8792a678f458747f2d8512c680e8680bf5563c35b06cd770051ed2.png ``` ## deploy to prod first time * Do the necessary steps from "setup" above. * In AWS, set up bucket and erase any test data.