Jermy, >From what I can tell this requires either my wiki to be hosted in a node.js lambda or to be running from a computer with with configured credentials. I can't seem to find where to set the credentials for a browser based session inside the aws plugin code. (I am also having trouble actually running the aws commands from tiddlywiki desktop but I think that is more easily attributed to user error). I don't feel I understand how the lambda hosting works well enough to set it up that way, I am looking for a tutorial but haven't had much luck.
As another possible structure is it possible to create a tiddler based on json returned from a REST API? That would be fairly easy to set up in front of the bucket and I could build some logic into the proxy lambda. I guess the core of my question is what would be the best way to generate tiddlers based off results of a query of an external service the user can trigger with input parameters. Is there a better way I can be thinking about this? Thanks, Justin On Thursday, August 23, 2018 at 8:27:35 AM UTC-6, Jeremy Ruston wrote: > > Hi Justin > > It may not be exactly what you need, but there is an AWS plugin in the > core plugin library that includes commands for use under Node.js to load, > save and render tiddlers from files stored on S3. I've pasted the docs > below. > > (Stuff like this can't be done as a JS macro: they are limited to > returning a single string, and are not allowed to modify the tiddler store). > > Best wishes > > Jeremy > > Commands > > Perform operation on Amazon Web Services > > --aws <sub-command> [<parameter> ...] > > "s3-load" subcommand > > Load tiddlers from files in an S3 bucket. > > --aws s3-load <region> <bucket> <filename>... > > > - *region*: AWS region > - *bucket*: name of the bucket containing the files > - *filename*: one or more filenames of the files to load > > The content in the files is deserialized according to the content type > reported by S3. > "s3-savetiddler" subcommand > > Save a raw tiddler to a file in an S3 bucket. > > --aws s3-savetiddler <title> <region> <bucket> <filename> <zipfilename> > <savetype> > > > - *title*: title of the tiddler to save > - *region*: AWS region > - *bucket*: name of the bucket to save the saved file > - *filename*: filename of the saved file > - *zipfilename*: optional; the file will be packed into a ZIP file > with the specified name > - *savetype*: optional; the MIME type for the saved file (defaults to > *type* or "text/html") > > "s3-savetiddlers" subcommand > > Save raw tiddlers matching a filter to an S3 bucket. > > --aws s3-savetiddlers <filter> <region> <bucket> <filenamefilter> > <savetypefilter> > > > - *filter*: filter identifying tiddlers to render > - *region*: AWS region > - *bucket*: name of the bucket to save the files > - *filenamefilter*: filter for converting tiddler titles to filepaths > (eg [encodeuricomponent[]addprefix[files/]addsuffix[.html]]) > - *savetypefilter*: optional; a filter that is passed the title of the > tiddler being saved and should yield the MIME type for the saved file > (defaults to a filter that yields the value of the *type* field) > > "s3-rendertiddler" subcommand > > Save the results of rendering a tiddler to a file in an S3 bucket. > > --aws s3-rendertiddler <title> <region> <bucket> <filename> <type> <template> > <zipfilename> <savetype> > > > - *title*: title of the tiddler to render > - *region*: AWS region > - *bucket*: name of the bucket to save the rendered file > - *filename*: filename of the rendered file > - *type*: optional render type (defaults to "text/html") > - *template*: optional template (defaults to directly rendering the > tiddler without using a template) > - *zipfilename*: optional; the file will be packed into a ZIP file > with the specified name > - *savetype*: optional; the MIME type for the saved file (defaults to > *type* or "text/html") > > "s3-rendertiddlers" subcommand > > Save the results of rendering tiddlers identified by a filter to files in > an S3 bucket. > > --aws s3-rendertiddlers <filter> <template> <region> <bucket> > <filenamefilter> <type> <savetypefilter> > > > - *filter*: filter identifying tiddlers to render > - *template*: template for rendering each tiddler > - *region*: AWS region > - *bucket*: name of the bucket to save the rendered file > - *filenamefilter*: filter for converting tiddler titles to filepaths > (eg [encodeuricomponent[]addprefix[files/]addsuffix[.html]]) > - *type*: optional render type (defaults to "text/html") > - *savetypefilter*: optional; a filter that is passed the title of the > tiddler being rendered and should yield the MIME type for the saved file > (defaults to the value of the *type* field via [is[tiddler]get[type]]) > > > -- > Jeremy Ruston > [email protected] <javascript:> > https://jermolene.com > > On 23 Aug 2018, at 01:57, Justin Baacke <[email protected] <javascript:>> > wrote: > > Hello everyone, > > This is my first time posting so please let me know if there is additional > context or conventions I should be providing. I also posted this in the > TiddlyWiki group as I didn't know where the line is drawn between the types > of questions. > > I am trying to retrieve a json object in the format they are imported and > exported by TiddlyWiki from AWS S3 and then create a tiddler with the > response. I am new to Javascript and am very open to suggestions for other > improvements. > > My code which successfully retrieves the object and writes the json to the > console is as follows: > > ``` > (function(){ > > "use strict"; > > exports.name = "getobject"; > exports.params = [ > {key: ""} > ]; > > exports.run = function(key) { > > function handleresult(err, data) { > if(err)throw err; > console.log(data.Body.toString('utf-8')); > // Make a tiddler out of data.Body.toString('utf-8') here > return data > } > > > AWS.config.update({ > accessKeyId: 'MyAccessKey', > secretAccessKey: 'MySecretKey', > region: 'us-east-2' > }); > var s3 = new AWS.S3(); > var params = { > Bucket: 'testtiddlybucket', > Key: key > } > var result = s3.getObject(params, handleresult); > > return "Results from list objects call with prefix " + result > }; > > })(); > ``` > Is there a Javascript macro I can call to implement the Tiddler creation? > > Thanks in advance! > > -- > You received this message because you are subscribed to the Google Groups > "TiddlyWikiDev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at https://groups.google.com/group/tiddlywikidev. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tiddlywikidev/756be27c-77cb-482b-95b4-9a32d0be3f28%40googlegroups.com > > <https://groups.google.com/d/msgid/tiddlywikidev/756be27c-77cb-482b-95b4-9a32d0be3f28%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > -- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tiddlywikidev. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/6a62ee63-f5ec-4d26-b824-6e19f6c6771d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
