{"id":13433747,"url":"https://github.com/dxdc/aws-sdk-google-apps","last_synced_at":"2026-03-13T00:31:03.201Z","repository":{"id":38284834,"uuid":"365857189","full_name":"dxdc/aws-sdk-google-apps","owner":"dxdc","description":"Native Google Apps Script support for Amazon AWS SDK for JavaScript","archived":false,"fork":false,"pushed_at":"2025-03-03T20:03:12.000Z","size":3125,"stargazers_count":28,"open_issues_count":2,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-23T04:02:14.605Z","etag":null,"topics":["amazon-web-services","aws","aws-sdk-javascript","aws-sdk-js","google-apps-script","google-scripts"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dxdc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"dxdc","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-05-09T22:06:32.000Z","updated_at":"2025-10-18T19:33:44.000Z","dependencies_parsed_at":"2023-01-24T17:31:36.203Z","dependency_job_id":"502a9804-1776-4182-a86f-d85281874bce","html_url":"https://github.com/dxdc/aws-sdk-google-apps","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/dxdc/aws-sdk-google-apps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxdc%2Faws-sdk-google-apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxdc%2Faws-sdk-google-apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxdc%2Faws-sdk-google-apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxdc%2Faws-sdk-google-apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dxdc","download_url":"https://codeload.github.com/dxdc/aws-sdk-google-apps/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxdc%2Faws-sdk-google-apps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30451521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"ssl_error","status_checked_at":"2026-03-12T21:30:43.161Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-web-services","aws","aws-sdk-javascript","aws-sdk-js","google-apps-script","google-scripts"],"created_at":"2024-07-31T02:01:35.113Z","updated_at":"2026-03-13T00:31:03.155Z","avatar_url":"https://github.com/dxdc.png","language":"JavaScript","funding_links":["https://github.com/sponsors/dxdc","https://paypal.me/ddcaspi"],"categories":["JavaScript"],"sub_categories":[],"readme":"# aws-sdk-google-apps\n\n[![mit license](https://badgen.net/badge/license/MIT/red)](https://github.com/dxdc/aws-sdk-google-apps/blob/master/LICENSE)\n[![Donate](https://badgen.net/badge/Donate/PayPal/91BE09)](https://paypal.me/ddcaspi)\n\nNative support for the entire AWS SDK for JavaScript in Google Apps Script.\n\nWorking examples for Simple Email Service (SES), S3, Lambda, and EC2. This project can easily accommodate _all_ other AWS services, e.g.,\n\n```\nnpm run sdk --sdk=ses,s3,ec2,lambda,dynamodb \u0026\u0026 npm run build\n```\n\n## Library deployment\n\n1. Add the existing Google Apps Script project [as a Library](https://developers.google.com/apps-script/guides/libraries#add_a_library_to_your_script_project)\n\n- Script ID `1J6iN9mJE-NK6LGTlZcngsflJEx59tE3ZOW4-2cdHbgw0So2MmEcRZxKG`\n- Choose an identifier, e.g., `AWSLIB`\n- Versions of the Google Apps Script project map to tags on this Git repository\n\n2. Initialize your AWS config settings and implement one of this library's [S3](dist/S3.js), [Lambda](dist/Lambda.js), [SES](dist/Ses.js), or [EC2](dist/EC2.js) functions. [Examples.js](dist/Examples.js) shows some working examples.\n\n```js\nconst AWS_CONFIG = {\n  accessKey: 'AK0ZXZD0KGNG4KG6REBP', // use your own AWS key\n  secretKey: 'EXrPgHC41HEW2YownLUnJLgh6bMsrmW1uva1ic24', // use your own AWS key\n  region: 'us-east-1',\n};\n\n// example function to retrieve S3 object\nasync function getS3ObjectTest() {\n  AWSLIB.initConfig(AWS_CONFIG);\n  var result = await AWSLIB.getS3Object('myBucket', 'folder1/file.jpg');\n  if (result === false) {\n    return false;\n  }\n\n  var blob = Utilities.newBlob(result.Body, result.ContentType);\n  // Logger.log(blob.getDataAsString());\n  return blob;\n}\n```\n\n3. Methods for common S3, Lambda, SES, and EC2 services have been implemented. However, direct access to library AWS SDK methods is also available via the `AWS` property on your chosen library identifier, e.g.:\n\n```js\n// Create a new service object\nvar s3 = new AWSLIB.AWS.S3({\n  apiVersion: '2006-03-01',\n  params: { Bucket: albumBucketName },\n});\n```\n\n## Advanced deployment\n\n1. Customize the AWS SDK if additional services are needed\n\n2. Copy \u0026 paste all the files from `dist/` into your project.\n\n- `Examples.js` and `Config.js` are placeholders, which should be adapted with your code.\n\n### Customized AWS SDK\n\nThe AWS SDK can be customized for specific API versions and/or services.\n\nThis project defaults to the following services: `ses,s3,lambda,ec2`.\n\nTo customize the codebase for your project:\n\n```shell\n$ cd aws-sdk-js\n$ npm install\n$ cd ..\n$ npm install\n$ npm run sdk --sdk=all\n# can also be customized, e.g.\n# npm run sdk --sdk=ses,ec2,dynamodb-2011-12-05,dynamodb-2012-08-10\n$ npm run build\n```\n\nServices can also be customized using a comma-delimited list of services.\nAWS has a [full list](https://github.com/aws/aws-sdk-js/tree/master/apis) of identifiers and api versions available.\n\n### Create your own library\n\n1. Create a new project in Google Scripts.\n\n2. Copy \u0026 paste all the files from `dist/` into your project file and save it.\n\n3. Go `File → Manage versions` and click `Save new version`.\n\n4. You can `Share` and make it public.\n\n5. Copy your library Script ID from `File → Project properties → Script ID`\n\n6. Reference this Script ID as a library in other projects.\n\n## Background\n\nSeveral other projects exist for interfacing between the AWS API and Google Apps Script. However, these projects have very limited support for the full suite of AWS services offered. This is the first project which invokes the AWS SDK directly.\n\n### SDK Core modifications\n\nSeveral key changes to the AWS SDK core were required to make it compatible with the Google Apps Script framework.\n\nNamely, Google Apps Script does not have support for `window`, `XMLHttpRequest`, and `DOMParser` - instead, it requires the use of `UrlFetchApp` and `XmlService`. These patch files can be found in `src-sdk`.\n\nNote, the final patched build remains compatible in the browser, e.g.,\n\n```diff\n-AWS.HttpClient.prototype = AWS.XHRClient.prototype;\n+AWS.HttpClient.prototype = typeof XMLHttpRequest === 'undefined' \u0026\u0026 typeof UrlFetchApp !== 'undefined' ? AWS.XHRGoogleClient.prototype : AWS.XHRClient.prototype;\n```\n\n## How to contribute\n\nHave an idea? Found a bug? Contributions and pull requests are welcome.\n\n## Credits\n\nAcknowledgements to @lsegal for [initial research](https://github.com/aws/aws-sdk-js/issues/620), @sk16 for [modifying AWS.XHRClient for use with fetch](https://github.com/aws/aws-sdk-js/issues/1902), as well as the authors of existing repositories (e.g., [aws-apps-scripts](https://github.com/smithy545/aws-apps-scripts), [apps-script-aws-request](https://github.com/wmakeev/apps-script-aws-request)), for insight in how to solve this problem.\n\n## Support this project\n\nI try to reply to everyone needing help using these projects. Obviously, this takes time. However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:\n\n- Starring and sharing the projects you like :rocket:\n- [![PayPal][badge_paypal]][paypal-donations-dxdc] **PayPal**— You can make one-time donations to **dxdc** via PayPal.\n- **Venmo**— You can make one-time donations via Venmo.\n  ![Venmo QR Code](/images/venmo.png?raw=true 'Venmo QR Code')\n- **Bitcoin**— You can send me Bitcoin at this address: `33sT6xw3tZWAdP2oL4ygbH5TVpVMfk9VW7`\n\n[badge_paypal]: https://img.shields.io/badge/Donate-PayPal-blue.svg\n[paypal-donations-dxdc]: https://paypal.me/ddcaspi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxdc%2Faws-sdk-google-apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdxdc%2Faws-sdk-google-apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxdc%2Faws-sdk-google-apps/lists"}