The logic is convoluted for S3 bucket ACLs. You have to use double negative logic...
Copy and paste this example, keeping cloudflare IP addresses as you need. The following website is helpful: cloudflare IP addresses
{
//----------------------------------------------------------------------------------------------------------------------- | |
/* | |
* Create a lambda function handler for a graphQL typeName.fieldName | |
*/ | |
//----------------------------------------------------------------------------------------------------------------------- | |
const createAppSyncLambdaHandler = function (stack: cdk.Stack, api: appsync.GraphQLApi, recipe: { | |
name: string, // XXX autogenerate frome type.field the name root of the name for the handler and data source | |
environment: { [key: string]: string }, // @see https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html | |
permissions: { obj: any, func: any }, // the currently singleton permissions for the handler to e.g. talk to dynamoDB | |
description: string, // text description attached to various created objects (can be undefined) |
FROM node:12.16.1 | |
RUN npm update -g [email protected] | |
RUN npm install -g [email protected] |
'use strict' | |
const tape = require('tape') | |
const _test = require('tape-promise').default // <---- notice 'default' | |
const test = _test(tape) // decorate tape | |
const Gun = require('gun'); | |
const GunLoad = require('gun/lib/load.js'); | |
const mkdirp = require('mkdirp'); | |
const { Random } = require('random-js'); | |
const random = new Random(); | |
const _ = require('underscore'); |
'use strict' | |
const tape = require('tape') | |
const _test = require('tape-promise').default // <---- notice 'default' | |
const test = _test(tape) // decorate tape | |
const Gun = require('gun'); | |
const GunThen = require('gun/lib/then.js') | |
const GunPromise = require('gun/lib/promise.js') | |
const mkdirp = require('mkdirp'); | |
const { Random } = require('random-js'); | |
const random = new Random(); |
// | |
// o.id o.__version, and o.__lastUpdate have special meaning or are reserved | |
// | |
graphdb.upsertVertexVersioned = async function(type, o) { | |
const g = traversal().withRemote(this.connection); | |
let oldVersion; | |
// don't modify original in case of exceptions | |
// return the new object and let user decide to reassign or not | |
o = Object.assign({}, o); |
The logic is convoluted for S3 bucket ACLs. You have to use double negative logic...
Copy and paste this example, keeping cloudflare IP addresses as you need. The following website is helpful: cloudflare IP addresses
{
--------------SUMMARY ----------------- | |
// Uploading a multimedia resource file is a 3-step process: | |
// | |
// 1. Acquire an "upload ticket" | |
// 2. Use the upload ticket to upload the file | |
// 3. Acquire a "perma link" to the uploaded file | |
// | |
-------------- SERVER SIDE ---------------------- | |
picture.initiate = function(current, original) { |