{"_id":"@nqminds/aliyun-oss-bridge","_rev":"25-857f72884a5c89da09214a417e8ccef4","name":"@nqminds/aliyun-oss-bridge","dist-tags":{"alpha":"0.2.5-alpha.5","latest":"0.2.66"},"versions":{"0.2.2":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.2","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.2","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"91def779ad9f4883cef2642ba3694afb3c533b14","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.2.tgz","fileCount":18,"integrity":"sha512-Y7pUbYVvocEhnbLeTVby9Ro8gnycsBHkcalLXKXQNJj2fkwBOhghzub2UwHDh/QBkwht66NoqlzOE9UiNz8Mag==","signatures":[{"sig":"MEQCIDyie4A9PMBxSUkYN78gy2Hcm3iyHXjSuse7H6MQrZdZAiBEDbHaRBwhQc0kjpWDjgWtVRjrAHQq/Ae73XUvC07HQQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKRLLCRA9TVsSAnZWagAAMnIP/iRIEYWDcuReY9BYdTD5\n6YgsUzkCj32O2OuN8PD3YEYS8iMpSWEuxYU6a3bV3L+bXD3iYhtcadQrb4lQ\njZgd650RaSuZizOJt2rwlfAHGlRSKd3z7zd2wgb1wzwjjgslvGlupW8FB4Ds\nA6M415p/dOKVdmPF8ofMFrDFa8QWspKscGJ+bvbqx22Ht4frsdGs65leR1xQ\n4OndYAFlwI2fSY53rUddlwO4TM2IxSUqkwjhmhCXV551wb2PrVxieGyzLN/j\nVzZn3s1a1ndIodhcGKbARhawCY0vqa67g1Gw7yfQX9sbCDoz8+XJvxyXDl0t\nzIe3AdwW56nJiO6NHhEdTOLb8RC1ZoG4jByGegwi7hlzuyPZem3B0wR4Rae3\nGpLULLH20BGf81kmksl2MMkT3zI7TiE4KaEU72OOS0NTbXiwgj4hx18rE0JA\nTp51iKXTJyV3DSGeahWE2RB3AiPTwv9NXMXgws4QtjemUSwmEOK4REPsBRlR\n7ufrwZa79+LVH5p3gwPo7gtdrCJtBN1P7eLzQgVcsOYWUxAsu2sYES//Oi6o\nQU6en81zzCiRcgLCbYpyOaHkUDmIgW2BwNANiiy2pTnDRyQ8AbtShlKN1i+N\nL6c7uBgKbL5vi8dmz0YP15CosKeEwOg7G3ab8aZrqv/3A0xRFolS0yBlFwf1\nezX5\r\n=5J09\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"cbrafter","email":"craig@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.7","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"13.14.0","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#1c26ec817d16e5f0db6a0c19ddda63d8bd1e9fbc","aws-sdk":"^2.709.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.76"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.0.1","sinon":"^9.0.2","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^3.9.7","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.2_1596527307204_0.49117140777765345","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.4","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.4","maintainers":[{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"04618ecc50efa25935532626a4b22094ce3b320c","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.4.tgz","fileCount":18,"integrity":"sha512-iGZNQKLWBpXWEbysmqg3+TS+bZTrbZeYEm50t0O7fAUnvYS8xePYZfUjxmcf9ROJQ/l0OWQPjbuS5OWurEirHw==","signatures":[{"sig":"MEYCIQDmYm4plLKrtKSUkCShjn/l95uoI8SEmrqWNya854y1nAIhAMBZsy9ZMXVXEzi2tVWqdqJbqPOg5YGeQxTN8nM9yaz1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSLa8CRA9TVsSAnZWagAAK6wQAIHg8/Ur4O/6lQktk2O8\nSGklRBXIuqIIRI5Rbzy8R+f2JuKX/TSrmiFaOOQ91nbtwX73s0ochwgRfbqC\nzgswFbhZttjb6Pxs0muuHRAR8uyLOWzPFv2FOU6f+ASdR6EkklDLlLr9l/SB\nzs1nl315fOhz0fR/38pPtwMcp2/Zb0BJBeq3UZvdi4ATzEoKpwJXU7k3ioYv\nf6DhkTuVDNp7PLYTg9Cw7Ngf4d5QQkvkxBc0lYsVUkx3EevZQ9CdaWd3U/T2\n4wQfkebprG6cru6iHUNLxwRyFMlCzkBBO+7yMLWFuznS4lJJvt3xuyZumoG0\nq2k6cR0QITxKG6MIVa/ElTxiFxrrgj4lgP62Q3xT0y/Zc+TB68o+PjeVhbZ6\nuXCY9Fu3ptPSJI5cgWakBsvB0Ld7p8xIYxXhpZOsriZRDcy18b4+Ug2Anl8j\nAr7k3KDHu4XcppDTqC6AkzAm4//2KWrb+vouvw0VXWDdTtkeoVtz1nX4CoXd\nZArIwNBDPAGYxy/MGp8NO8obYGCb9LfZhk+ikyA5pF9ozZMTGeaA3OtAHxOC\nJC0dbopiWo4IZ+R7A3ut5jb2hFBJsxItrtS/ecovm4v9SMwWrDOcnn/pc186\n3MAcASq8FLPx6/6ys5xhsPdGgM32qYHf9eT8/uHCWZ/MtEPwzuAcHo4D+0cP\n8Mal\r\n=6QFH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"ab18f7ae396a5f0f514d0876ed883033aaf7710f","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"aloisklink","email":"alois.klink@gmail.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (linux)","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"12.18.3","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.79"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.4_1598600892210_0.8692514581907695","host":"s3://npm-registry-packages"}},"0.2.5-alpha.0":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha.0","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha.0","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"f70fb0a454ad5352e81ec27bbfa7f6d639f06953","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha.0.tgz","fileCount":30,"integrity":"sha512-+id9luzcSlgMpY2vMJHV82dQfCwJWM4tfA0wLK7ZJOtXIqEsgocZ9TyOug6Gze359cqNnN3B/I7n2xKcRHi+7w==","signatures":[{"sig":"MEUCIAdpNHS5fDpD3hM/NRBftuWydvGbhkIfbIi8WSToBGxSAiEA9nW7Y+3kkfH4jjbixk5WlNo6xlhNwKsvsynm2RqeMgI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75242,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx6/jCRA9TVsSAnZWagAAlWkQAJA5V2LXNY2OsaZDswPW\nE2Eae+ikETzFKe0eBXOjzG1s/FYR6Lg8upnCPp/PsMv5yqcSidCFgBmvcAbL\nkoeHGN0Gapc4D8dvZvn6E9I820Bi3M0L0AlWLGXbuvxhOfkRzfMrv8pj0rQx\nxEyLKbygVVIVs4t3tScUsieCnEahcMQaYrYMmdmJ+JIXTJUp+mt6lKrQr5b8\nEoG1KBG0ttTc2QWI/SRGdTmyg230KN6VSFdPOt1/oIM8ux+xE+g3pzUKlyxf\ne5TDYdszj/mpQjyur+t8RX8069NfuBdSB1t5oIHKsWpaxH7J2T3Yoic1W4UD\n8Fhh4u+P7xlnp+W+S7MmgSycrPX8pZkM7I0SKKWdpay5JU0LBKXPJR3fbZGJ\ncB0FEJOcR2VbB5eav2VDR6jQ9wUd58rtAy29l5DXmemrfjPUoPrG6uL8PgtZ\n7NxlcxMJtBxraPxo3a2V7TJryV84JnrZUf1jgviBNOiJouff+nEEwwpMz+Q8\njWxYuhamy8YYcyQ8kZL/sTO6q5XIQzqFvZnCjCPBrlb0KZju07E6i57Gted9\nTv1O/vzceLnHjtoYCIrbJag7p01Uu/fWowmtnBvFUoeAnyVtWQHc4MFjxb66\nyXpp8dFCUFSZ4YEGlwunfXusrU3gw6V/4+EeDHdmTYQP3JdZ1er5exasvLod\nySsb\r\n=2Slj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"iglautier","email":"ivan@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.5.0","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.79"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha.0_1606922211251_0.5470818732086489","host":"s3://npm-registry-packages"}},"0.2.5-alpha1":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha1","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha1","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"80644d71637058605d45eac24877bf35461540cf","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha1.tgz","fileCount":30,"integrity":"sha512-liiqEAjxuf1d4PotpzftlOLMCi+Eawu5Y4tdFB9P/4IdvyyUxsa1mToVC4nGDSp/NeIR7Zj+O8Q95iBtZ+k8gw==","signatures":[{"sig":"MEUCIQCVO3YrzaQg8IH1JvbMwMK/jyRPV8mRz7ij1Ceujj4j9gIgD6Lr68TmY4h9DhqWRI+Mjhlg/RuugfEpD33icO99j3s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyKQpCRA9TVsSAnZWagAAyj0QAIAy81g23VHc+2PXlHAI\nMz9WpQxe/hsEZGBcD3asgrBRNv5Z39Y1q5ebDYjtqHBezzx+sKaz33mPPufh\nJsZiEOB6PS49KS+mNKVk0Oc+BYUqAXafQ3OqK1MCTxGtCeszYhk+N+qKSbRn\njDhxvVeA07d3kur0RFhyRGAAakDXA73jdg+p+LkfeE3pi04B36UyfDtHThBO\nspbJYNWgdnTSVhQGA8ckoc41ZZslEjW5ZF/mDW7tlKbkBGpniZh7+Pw8vZ9s\n/xRMD0wIry4xvakiR0UosxZFqHllkJVZuBPGdC4zX9LUcFq0EnRKKS6DXF9B\na119BAgUrKGxvg5+yLBGrJa1xTmJGvXZ5XEzv9vbJ2E/WbLPf27g2ea7MRB6\nZ9zXvWb7Vf0KmGpGn1xiKunG9EmX8m0y7o9d7S71/wxykk82WD5/uiazz5wM\nTapLICvOY8F8lYACI4ExohAIoBYX7oOMXUpGevfbxEEOOue2Dn+lHMpEoZXp\n+l/nojqNzRuL7QplhaWWq0w9sFpSwAy5F0/vgfGeBp3oOjKzf33DxPsdcjzR\nH/d+zv2xJg4XAaxAlwI8Zd7Qjxu1rw1/Ok6eZwqLJwnPI8uQvEfnyM/91RVq\nUuy8LolmivAToHffGsuxXkuXmV/z8kirxwAU03Lh26S1st793vFdp0ch6USR\nakqP\r\n=LnvI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.87-alpha.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha1_1606984745140_0.2545651905136299","host":"s3://npm-registry-packages"}},"0.2.5-alpha.2":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha.2","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha.2","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"51ebaf7dd581768dccb9ae69f9d19864294fabe3","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha.2.tgz","fileCount":31,"integrity":"sha512-uamNqj9y1wwxzaHyzyZLuGucBYD/iaD4fKtRUKT3c1DuHdnE62s89wLM+Fob7nxiqP4m6ehBIYpX+bguBdkoTA==","signatures":[{"sig":"MEYCIQCQ56EtU/ABbnfHd+DCvNunPcZgfjS30OtUio+2Nm2htQIhAMizmjLBPvq9XJLT7BxkpX12c487nq64Wlc3Qt1HSEwc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75487,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyK+1CRA9TVsSAnZWagAA3/AP/1jmBkawDfqUO9oZVIxR\nj/3+sqSaxW+Sb6qdbrM/W4yD6cq4ApXxr9NhvvpRMxj5vRRAl4t72+XuWw7e\n++ZXkgMX3JGHoWYZPCDpCl7ozJpQO/25Fg3vq9PdM1b/YQgef8k63+FOFWLZ\ndoFbwKnCqtUeoWhlGNxnWXjCZwZ7g9tpfIy/HyLyADKGNYlGp2P/SC/FYmjy\n0GMOmDAOEq/AhHNMj6Th5u0oVATl+Dz3qbdYfNoyqtEE/tXEng4iFVzqR4pE\n/ZMXPcOWRJ1qFqqygA570xO47MxkBAIZbuDPxjYYVmSgyyYda/QPKOkjJsLk\njdfYwoCki7C0CCzsff1bWm4n6Z2s+vkfcBD7CNHXrCFtJsqsC4FcuPnw6FUh\nsOLNRw4h9v5bNV2sRlOscAKSy0avcNS+STCP4tPHtJ6out5dvf04jURMU3NU\nWqTn+eT7mBApJTnGX4Vc84znh+j76MEy/F3LN1msx/F6mPO1RzBzVCda06DD\np35XQtMzKrV5m92UGDoDMrMPGu6KYGHLV3O7ZQEGr5lIQcC54J83VZp4fuLk\nwh4nCioDihORMpSIE7U4lkb74BvUrbgaZrRJelCvtE6XudWoF6BfQVL4v8Iz\nY6TKYAMGx7qaaCmjXJxSzDATjpkwcW73RBcG5Uo66wq8U2o8g5f60/SpVOBp\ny1Xt\r\n=uIvA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.87-alpha.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha.2_1606987701467_0.5379821073677669","host":"s3://npm-registry-packages"}},"0.2.5-alpha.3":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha.3","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha.3","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"6e764cb6b4a243074266a06ba024234d8735723b","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha.3.tgz","fileCount":31,"integrity":"sha512-Byk/rSJPbIRJVXPRBFqvqLMvFimN7QtaEh17u8YKAJky3FZ3Y+ZYcXlhjDwymPyjlTJRhV3vbh5pX8pYcKYWMA==","signatures":[{"sig":"MEQCID/KSRXAfTelMzH1nML05LztmGueCKb2WMtG05jwvZLtAiBUQvRuMMyJeluEDAK3iX9rHmVtfp59BAIOQ7tXM8dbEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyLIACRA9TVsSAnZWagAAR8QP+wSWLBXoJI4RYq+zEANK\n9dIWTH3ADmCFge286/u91/0D/MgKo78CfEQL2r0mSTHx/prRIyS2vcG8dfRN\nLbpLKyfuKUQ78RTJUHaGRt7w0OUDEUR2/eA/XJWDH9oAYqESOXfgb+fIiy7R\nz3MVy82nRtqKqRAvdK+1/vAH5Siz/r8BaVXdagabft0PdcPITzDjSMs4reiE\nw/7Isi+4snMuZrVjFtI5jPS1/3eK0FsJ8G/7c1XqTEG9Qi/SfFb3nr1znPxM\ngW4dP2JLCMWEXaodnvLUglBGgOVnw4lLgPhFd8HvTldzzP1TmQHHXsw2Pocy\nWfbLQcAShT0Y9rXQrglx++pfL3ArtiJ75gIXuk/7/qAUv2avnCzxiCxzeFqw\n3BM6F63/lc4PiXvixodVtwYIEn01p7yW+B6tCwijfah3A3gmUxPWxAP0q4sa\n0XfRlG0hg+w6NjEcvB0M7iw0GZaqIt6pSafOBjWYcClvXTudxnF3/YmPb9lc\nt8oHiM7w6SocsMEk692U0DijG1DMBjmqiKuf0P8FMIRzV9KJ8WR5FdxRWYUo\n/gfL104vaZodj2ntp+TXOciGpSw6fikd0b0wdjXqf/HSmm4aK6eFVKM0oTaa\nmtDvKzbH2jceKnsQOAY4yLAOZl0PlvJtLO3q0g5UWTNSegJNfN0FjvoHmYx2\ng9tA\r\n=Xbnq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"1.0.87-alpha.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha.3_1606988287833_0.598334420994213","host":"s3://npm-registry-packages"}},"0.2.5-alpha.4":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha.4","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha.4","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"4a345a1de080eff293c6fd2ede367634b846ece4","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha.4.tgz","fileCount":31,"integrity":"sha512-vV8BZ/apaRUA/rdnH8pw3P3MRXWvsKcmu1MUXFNdH0T8MXXsq5mz61/BQ+taeWl7hgt6K1ZmMzFgnqrvlXIvZQ==","signatures":[{"sig":"MEQCID+SU3zhI9y0mUNb4g6+9Eq5J0O/laQ7gNGSAGlNcn20AiAAzztqFppPZb+mHbVz9DQfeXYCtAP6hNUGLgciwMyrzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75578,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyLVuCRA9TVsSAnZWagAArgoP/iVpErn/j2lFa3anOztM\ngWhRKNNX1m8xykeG7PnrFIK90Yz3HYyRsJ53M2due4UjQFUzR5VQIbYyNlVu\nn/Vg7JZCIp0zCeV8Vz7i3/yQC7J7uKWYii2EmyeBiD7rZYAZddpWcdiKWi9t\nrlzmiArsGrISrjKLXYvNQUXPFaXRlMPgxYK3SaETh57yHNTIpTO9epRZ9K5/\nQDSNz38zJ8rfpAD53aulrqkAowvzHUeX9ahcbtkBR/6Z8SvUH+wvGaSfQOnt\nqsGAg7ssqS6eZPMbAAjEACJBxIIWNvXPYAQDWFO7n0RiFjBHWL1AoGteGotF\nSk5j0hBxiT6MBcG9HZ85ZddQWvh0Ne4c1C9ZQDYZACOnPBtRd2afQ+WA4jZS\nartXugqO3mu4B3UqsF12OxTP46XA4cSEnz2VSJOEwl0aaDoZWCOo9R5g3DXa\nQWqYIcarOjA9rAqJTLvSwQ72pL5yvqcj1Pwi0dsg8LUNCsgH2xNQ6gQ2CP7Y\nNxH+XAqEpL2gDRLw5H6E+p+jprMhJvdEUiJsrA/sv9bbR4YoWjL46Nr0zi5z\n/qYCcq8VVsk8NXdBF7Twvjcnsdk6w64dtv+5UgB8YKwYozyBvBuhQ3VquiBr\nDJ3/GmM+0DCDuLAO9l/8sMMSj1qAJmOFR2kh5KpYqv6RbIqWQmzwBj3kQmZn\nTng2\r\n=Et1M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"1.0.87-alpha.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha.4_1606989165865_0.05069024423973567","host":"s3://npm-registry-packages"}},"0.2.5-alpha.5":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.5-alpha.5","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.5-alpha.5","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"de9ac86fc5f0600113ea568b18defa099ffcad7a","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.5-alpha.5.tgz","fileCount":31,"integrity":"sha512-jsnpX6Nyf//e/LNFkpCAgPD/Zqbw4jnQv6o8RRMvvNUbaK9a3uVLIIvlYR2p6X87ndB8BHSG3vRrcNVcpl6B+A==","signatures":[{"sig":"MEQCIFvKfza3APsWhKxRDG3roILoYqn9jp/teGnQ7To3fpL3AiBAPRt3Ck/FdkYib62VrHF8HQPHZXmyKOksZWOIAjdiyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyLZACRA9TVsSAnZWagAARrUP/3wfi36odvsWJy5FXtnN\nI/TiRtVqzHe93HxXvReliOR5aQmguuh1IhBmyKpfiTmBqtHnPgyw05Bz4vzs\nnHUUxe4SKWWfK2kP+tgyevjWJaI3cF2oUDuJ6OcNi53w65UR6EgXmoYxloC+\nm+a0m8YhGay7Jf5VY47XxhTnuyzfo+nHlemchbDG3wLWNtIvFkLZJbCvR8dA\nznfNw/KzqSsfRUzQfATd8c3Mdq0VfgoTAMEpUmMVzbuWUeL7NxEwxnQ3EX4P\nn74v7SpzvjBi9dYfE+XmIppSPMByDz9yut40izd++4s1OBHXDqYbXDgPVpFf\nvkLIiX8jogpTnKLw5B/4vClgyhh2D8ErC1+R4As2q+qX8KkxisGEsiqmpUVb\nT3dvASIt5HbkfNlLhx8UGq764KhV/Pas+n9ttUSCZA71PduVvFxfXgom7iUz\ngVb4yWaSeRi4P4NPAb9FMWEl9S5UgbQADzLH8vNiNRrKo4fTFZWszkuKh9+P\n10BI+cdYp3co+YMHxCH3InzajaG8BLUQ7wnUuJ4eP06mHP55REHpAkVk3FQJ\nVwHDGIE7TGbtO/qx6mCqRMHebn+8xCHnHcRaHermwk8fHBS1BqHAGJbLKmrG\n3uxQZXZ1MWy6vN/S5RTqroC0TC5rzB5pE7Yy09HNvPUuvXhEbc6U3/1a6TT+\nqxiG\r\n=git0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"1.0.87-alpha.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.5-alpha.5_1606989376208_0.9337849465505546","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.6","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.6","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"f1316eae8554d32072826ed4a3ba7c072ab69fe8","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.6.tgz","fileCount":30,"integrity":"sha512-IWbZVyeq6m8Idt7bVKJtjg/6Yx4JavA6CXndrJWDFWwi1Y8JKCu+ZB1SnrfXnKzBIKRgUFM66S5v8h/faNcmyg==","signatures":[{"sig":"MEYCIQD3YaZJOU1uvWM3XbyrRlJzUevlaUrBrXnPm+v9qKeEnAIhANsToWb0HLg4D5RS/cD/eSiygFCySYt3TCw2s6z79mmQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyNqiCRA9TVsSAnZWagAAAJ4P/jIQ9lE8ErT+/x3I09Ru\nkyRrocFAkSsQD7oOQa3qQN0aH/dtZJhYYEvVe/rwm38KxdxCW+5XlwEo+9rr\nY6NgMayhxZWY6Sndm0DA4SGLweUPdHIhUoqq7U/jCbzvvza1zhFxOH2fQhjv\nFgvppXOIDnezmrBiFobLp4BBr+5higpx7yad/UobDOY5hjo7pqZop85WRt8Z\nPLQJsQLc5lrfIk32OdgP+kefGjwpwGY4SowoDkalmcsAyLBFUyjDoRbTaeY5\nyshYi3bn0Bvt/1efdgT5U5aH5/hnrb7jGwpgE4mgU74TT40JnHMgHugq496t\nZaDJiW09/CS/uFoBpzp/zteiLHf2Hp+Am0zDMACe8LphBNCES46Q2AIX802p\naEIza3vT3LcldofuddQ6K6zMSdu1RCvknQOEtzfo3RYwA2tk9vrhChrA/9GE\ntu1D1CQMKt5kLKzb4fEnizpJ9mYekKGQxMjXIdcLe3a5ioZlpnajwLkCw57i\n2K2WhY5DW7jBr3Tr/n2EVTU51THWY0R9jA5csLlYazWz0tuOgV4RF2v9Q9wz\nHo/jONneJukDI18FkBN0F4VrZXIEgzFFBBOtrnTfwMFDV78i0SojtV+45kFx\nXstcukW+1UWtEuCZ88HAaaG2Wljnwgtw5UKFk4jJF37BmUXP1ZEhxqQWny3B\ntdiH\r\n=QqPg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"1.0.89"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.6_1606998690275_0.9310693103121548","host":"s3://npm-registry-packages"}},"0.2.61":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.61","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.61","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"25154d74201b9f11c7419e5d9d1a3b5c69d82bd0","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.61.tgz","fileCount":30,"integrity":"sha512-75z2X45IGUYAk+mN47f4CxBN9rFWfTHUT/E+0bCg5q/gX/rfiXQUFeFO1DdK9QlPj1Lzz6+8JgDYYXNgcV6VSg==","signatures":[{"sig":"MEQCIB03RxBxdNz3eIkIZl2qyhw22atDWqs7U3J7hNXwfTv0AiBX5w9BTqxh5ZAtI5jxUfvH1Jrn9ESQK7gIl71kYyI1VQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyNxfCRA9TVsSAnZWagAAsFwP/1sp75LxLXRC6NcKATIt\nnCuvyUSJnyFeXij6qf4q22W5vgfaOc2xQB443+HfEYWYRgS4WBEtqcZXXcvi\nbFaKgl0qVONM66aeQhAuyWeDzoKsNrd8HTHKeolyAI1PDbq9UfItPp/dH9ZN\n9aHomtm9OmOOy5dKs21LQIauwyuFwOgqGlTIie6AQV0EV1JEBBc1zusAjADH\n6SyHW8tP0ERl/GVsXpHTzni3khOiX93jfpc8LM7C/4bsZsHJYipoBUnAWdnW\nA2RE3+j0pwgoeNWJKqQBXOORaHyLkcps7nsbkmtpZ1MsqOiQwlQbroQmfO/G\nZ79HHtE7p4nJBR2kaEzzWqeOVRYVzY2QwMnHUsXr/iNHmpv5y2ZF1VCBedFt\nyw+saf6GIMMXsDDk0nAu/0SNgApDBP05ilUo8uSkybyXXmB9X7Aze7HUSsYC\nohG+17FeKqmt7U7jxjD4YMB33GXahg9/Fv6Oh4VMHp9yQ3KLNEc1Y23gu97q\nRnTLdhaHHj7cF80IvY5gtZqdrphNfQXm7hwGErASFwnO1aDIlm5xW6sw85mc\nkmNzoLOvRr7zvfuVWLdyTMEGtPa696/liUV7R+HnU/6H1xAS+bCgFXanIHax\nOc+URYApI1HLu2yRtujwqTXqy9R5MsZhpdEtbj/2NS5gSgB3FBakJXJEU13s\n5cMH\r\n=uIEk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.89"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.61_1606999135266_0.7499109502363057","host":"s3://npm-registry-packages"}},"0.2.62":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.62","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.62","maintainers":[{"name":"ashleysetter","email":"ash@nquiringminds.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"nqminds-org","email":"nqminds@gmail.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"2e886aaf3675d32f2257b77bbc330f2ac9b4123c","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.62.tgz","fileCount":30,"integrity":"sha512-vhVU10yzvUAT0aZacEa9Bpl7AxBZ9ne+SPiy6HT7WvrlKcsfJalnYWRA+AqavD7du0wJD+GE9WMFbPXcsM62PA==","signatures":[{"sig":"MEUCIE8HMri2AHb7CFXEvYpKcq/f0RGBJOay+4g1j/6Rxw/dAiEAv1bGQ9TSdgLbiHDQ3HU57kLvvuVXwFhketMnvVyTtQo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyfMFCRA9TVsSAnZWagAA4EcP/1l0vol+EXKLNJ5/xPuH\nV19CZkFklO7ZS9qV5Fpv+jPvNuI8afbA7sVzPLgIelflm5+6CvdODxZtLko6\n2wUZs6i+uSpZYjoNeZ3nPxNMOcR45zGp/hz473BZf7g2g30qJb0zsLZp64hu\nNp2b4zqjs31kF//BHFxpG5y9//tpFm+dpjDkQQpa+65yMGu5CpU+q21WhHwo\nFqeapjS7hM52VQTzkGegJ4kJzuNZ7GPTer7W9NVub1+ru1yc4RcW09rJUs+t\nsayseZQ6SE2NTT8226xd7oL+dY7t3e1aCYx/WLrwmVslR/cNqd/NaeeEN1l0\n2/Xo7LTpTGOnPaYhxpdQnurG1GXOsQmIEh0fX47NWuRkuNUJBEGdeByi0mIt\njixePPh6fkTy+9wBFVBidG9XVgAJfHOTFTd/yFQsYWAAoDpFyENSGRW/0RcZ\ngsTJCDhZJx8PialPruVoH8o2z01+v0JbPTZmU+WB9HmEjDQBaOrotT7yg5cp\nKFd8PzKKIwILNVyQ1fTU5hXHHXAEBA/V88pXEfBn4xCFUsCGo367qrvoFlJd\ngdatXfuzZzdtWyHU10ozdHZrKAHSrJUCb42YltUTYi7xezMNuywb81BMCLXd\nX7v2tWiwEoTdwIRf3Y6MSnKnfzzGFuGDuKyPFHl420L6+sQmWTHnvvDsDrpi\nH/TT\r\n=pG4g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"mocha","prepare":"tsc"},"_npmUser":{"name":"ashleysetter","email":"ash@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"6.14.8","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.10.1","dependencies":{"debug":"^4.1.1","ali-oss":"github:ali-sdk/ali-oss#2624cc3e0de5417b42cde872b5ea9db6fc3b05e1","aws-sdk":"^2.738.0","geotiff":"^1.0.0-beta.13","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.90"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.1.1","sinon":"^9.0.3","dotenv":"^8.2.0","node-fetch":"^2.6.0","typescript":"^4.0.2","chai-as-promised":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.62_1607070468971_0.0789474816374729","host":"s3://npm-registry-packages"}},"0.2.63":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.63","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.63","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"73ee0f03fcb1d8d06faf8a979a51e5573937c520","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.63.tgz","fileCount":30,"integrity":"sha512-bfPNjd0sPnvHn8hblthZL7qzFZCrlwMx5HGCgI/3Wlj8XTD0c2pGWZiOMWLkC3aII/TZEq+VBjbRyYprkd0Z7g==","signatures":[{"sig":"MEQCIHrTSDKzNWf75YjfWQd4pRAeGlH8BGgJz6IF0asbzg4qAiBkBnvGDGxlv96luHKK6zw9b4poStnrn0DsD8FNgVrcJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9urgCRA9TVsSAnZWagAAn44QAKFV8OGPrbz6z94Y3ROp\nVMci4tYSGBen10aW1Whp2ysuxn4//oyowIFIK+i2JT3AvKGcP/Cn8GuapSXm\njSR/KPTZYCAf+HmggmECjyILEFerK6lrFDTy2il+yB8dFKYcHOe6GcAaanGi\nT745jy9KdEy+Gf8m3u+TCxQu+mGTAprIWVvcN2b3TkqN29M2fl6Ot700o2El\nVcIkOhAGZ5zeFzxIdYUTtZL+2Uo4t+9bWpZGUARE4d56hxqRbOx5FHTiUgSN\nRKqBbsUYIBJBU+DwH3lnwYu5OMipDexlTsztB1Qns1MPA0vGAWYGWAZSIaCi\nz10OxmGBNUghBwyCQ/B6q/4VWbC7gFCyuusgtu7jAF1zOOIDu4mep0sdXgWu\nCfw6Q5/Rsehr+QrGy++Tn/kYI1UODa8BXNeM2uYfMx++v8xAWwlPWFjssaZK\nxUfs+2zzu5mGY6s8e3Y5kxy516UqWG+RayaI1kyJsfCh+nP0jIpVclSo+jr9\nKvbu3cQru9vxQWHK3SnL18US4OOXNBlXBQGC3/8uwRA4A79DgXJd5Ea6zYnT\ntdWeFxsIGhB53HKCvhg92DYTle+LKfq1aNKwHP+y4x8pCgSkSiBKeGWX/YLS\nkFW9zFv25JkEHwqfg05YlKCe1ufA80MPHdz4p8eQQBSIZLSwlBzvqLn1Aa8S\nzKSQ\r\n=1Bum\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"273c3fe638ffe91f8442504d42f917871ddf063d","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"aloisklink","email":"alois.klink@gmail.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"12.20.0","dependencies":{"debug":"^4.3.1","ali-oss":"^6.13.1","aws-sdk":"^2.823.0","geotiff":"^1.0.0-beta.16","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.0.90"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.1.3","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.63_1610017504133_0.8717170908107854","host":"s3://npm-registry-packages"}},"0.2.64":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.64","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.64","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"cc9660ef1257e03de584bba8a371bbb5bc191be0","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.64.tgz","fileCount":30,"integrity":"sha512-3bURQn5x3kKf5e/+iMYPfTvcWCRAoEl0clRvFEBy/0G/u7+Wn3Zb/HNVsJylyUcvHecnIHVaNS1tVJ8HBniU0A==","signatures":[{"sig":"MEUCIQC7V7zmzM/+JDXGYe2csVFXwbVtZG8rbVz6si3NXqrNSgIgeYMF6pLwwu+7gOlHiVVw27dsIRDZlambPXpBki6lGUc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYuajCRA9TVsSAnZWagAAMJsP/j0yFegBvIPdu4lWve48\ndA81ptxkVuyqnZsCLNeSIFyB1bieYcOOMtAGNMS5yj/qp5I9b9z8Q8VdSg00\nCS6VhC9DJ1QxVCQuOSk3bms9iyjrGvX6fxKeOIs231fv5EA5GRFbKIH+beF+\nnq6AvzD1Vwqm6VHAn4ebbXFpOm2qIQWCY7WwkTY1z32QQ8pUc2JahSuEpEIo\nmLOMTv7JjuYN6z2ToX7Dkkvb2zhzrDYbQ4Klst7M8M/pddWXROvRq0bqY/Ke\nDRV/vbWEvqhypkQKVwSWSUtvFMUYdSBh3Sp5U++f6rPU53OGWdLufUMyRj1R\nOX/0JWOksLQ/Z5bjdSpK6YtU2vYnxcytoW91pc/YS08I/no/eiibLVLT7voJ\nqRWPbRoM9uA7zun9NYva45bm98IizMTIIGy9hQj4ax0TXyq5zm/g8aOI8gJ/\nG+O0gt3KoAiMyQUJo8j+/H/PnMrgeZ2YVGA6zaMn6eI8mCGLUm2qvZlnb/+A\nwM1jpT/Mc7VJgH13QqYW+6A07xGlhH0MYKa1d4henssCCDyZt8NdkKQDgGoi\nZ1Bub+lUj3HbO7/h4M0fa/THmAxHbZGMe2sSPFIxv8OgKsw2zQ74oWoC+VGJ\nRGuV+mr3VmN6va+b/5gxOSDihjz5ejfXu6HPutArpfTCXTMJUSx+X4andjTI\nxT61\r\n=8wIQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"508ca4751afa32a235e4b035fc5dd62d5a3966bf","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"aloisklink","email":"alois.klink@gmail.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"lerna/4.0.0/node@v12.21.0+x64 (linux)","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"12.21.0","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.64_1617094306555_0.24369578344145038","host":"s3://npm-registry-packages"}},"0.2.6-4.alpha.0":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.6-4.alpha.0","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.6-4.alpha.0","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"94edae8bc7bf01b7b25c918133a30f796d907777","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.6-4.alpha.0.tgz","fileCount":29,"integrity":"sha512-aWL02iabiIDlHb/2q0DndhyhjanJpArlLO0E5/wwtyYPqr7j7E4LYogkiKJdfY7jSptm1v60tumrfLjJJgBs7A==","signatures":[{"sig":"MEUCIQCcEcM2QSxP20cxf+W4EXQ9YsfqUtwbcxGog5evY3kAPAIgfyrDXHZQNbhf2T28ORguufxrGFfC3D6SeU6TJcquBXQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyLVcCRA9TVsSAnZWagAAn8sP/jPNC0s3qZxLjGTC1QLT\nomZrQhA8NWOR5+OBypshpNUWpFrtRVEAgNd8zJBldHhZAWZcTwXNalyutzT8\nepRgqn/ETueyVwU8daXvMu9h0LSInU6zYqOyJcrj8/KicpI2vvYdzU0iRwA5\n8DdT9R0F2aZ9TkOclE8C2M0xIEnB/JukWW6Fw2eVVcE70S73RADiWLISctrx\nDbNvmFAQFCyNuWRyFP3UXooR3Ex0ixhrftiRAgtFmSU3CZL+iZRTD40E4keb\nXUrAGfWd5tVjpZWYk4Vr1okwxprf9e+feteKoV+9SZPwLejsd4gBEfL7MUk3\nNs6C3ORBMC1yQ4XRN6q4lZUzWJ5fVVjlTKQw28pYzg3hyN9rRpWgkmFq5IFv\nC/eajm6yhdrfOvmj0ecCg70wgHEY/NVT2m3EpACUTrgBkyVxGbBw0adN6m0Q\nnyzBcYKhp8re/UxgwB+5cn2ybrbo+cZygXQz7bnoxlmTTjjE7WSb2cP4GK92\nFZZ+I73bFjhHo5yzu3eemKSkG2tQexCm39mD+w2vVR3aBVK5mOFv1OmhLFB8\nDIYg0ktDpoYDllT2i57mypjw4n/PHfz/BfcqOnBv+CD0+ZS/nJwctb/MqIwV\n9ts1zyuRGoMUO4JG+b+fKCHIrBQ6Qxn7UFL6kc12dndCiKy44OuJysmQO8C0\nNhHb\r\n=OUIp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"cbrafter","email":"craig@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"7.14.0","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.16.1","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.4.2","@nqminds/crop-doc-constants":"^1.1.1-0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.6-4.alpha.0_1623766363945_0.584328069836695","host":"s3://npm-registry-packages"}},"0.2.65-0":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.65-0","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.65-0","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"c04d4db6c98f304a567f9e7b1d2cae0948edc1ce","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.65-0.tgz","fileCount":29,"integrity":"sha512-rWEVmdIo57mHRrnikGqigVNfSKesRb00Z/TOfw11rJPDf9ih1B2zcUmxjeAfOoK8NdXDnAVw+qr6VNq21zarSA==","signatures":[{"sig":"MEUCIHx4WXkhDR1IaA4yr/1Cu7Ta5PP2KgA/M0HiCMdoeOhjAiEA0InhCsF0uYFDjEQm4RHl/wThB766CWlJ85RAI+Rp6Y0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQvbpCRA9TVsSAnZWagAARu0P/ROJneIhhg0ePHIYjlJO\nKonT9FEDTBX+eXjJz1mTgfh6L3UcpBYOaCrapmrvOPVQq8CCrxT/icN8u5Yq\nVgXAlK5x3aZW4Dk9sXpIWHcP4Ad9WhvciC5mEuIanI2Sb5+Xfr0x8AH6+ldB\nfozt4jvxqllF1T4CMXQzVeYbVK5ZMTopKVFcYwa83ZN7sAhe/w/DvRPs3lQo\nN0j8fiPeW/MIWJTtxbW0HvDsf90nK/i/Lq2zKuIq3qtCu/JOjSdjyTTmi88Q\npHSYNJ9w0m5/1mDN4jkEhEAYvkfhM2LP5LnJU5xMMdh1NMT6pbnFAGqe649+\nR+1ZX4ZY1m85VgH73JI9wCXEpv31XkRgxL7Allysw+v8UrGYnXfqOTHVw7zm\noENL0SDojaic6251DdQI8Etr2oHy5VwsR4P6cOQet/tLNUxcR0NaiiJHz7aG\nlYUj7QQEj2uhYr5f/rCnhh3elnVCLpAacKp53AVBnRORIHYn2gAw904sMuL4\nyfnFFRaIujeGoba3HBiF3FqVa6PL9r3Jz4BCcthI1KhIGjmq7/dJNyCn3jSU\ngbYanzJ0+1bkAuQjFzLQ7+nqKtieKl4YYmS9L+xCevpjPnVdXkXGCtKSULKB\n962CwIGwAjtMJqAyulwbUEMdEdravIVUWX8d1igk8sAaXRdDIAazJ2fD572F\n1jJp\r\n=Hs5i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"cbrafter","email":"craig@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"7.20.2","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.17.3","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.6.9-1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.65-0_1631778537651_0.2699555673118237","host":"s3://npm-registry-packages"}},"0.2.65-1":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.65-1","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.65-1","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"aab460a06f92265e03757fe3f4d0df049fb0443e","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.65-1.tgz","fileCount":29,"integrity":"sha512-3slHmj84Ahcuv8dVqX7y7Wkda2t3bzDBaz3YNS8s5QHUkBtLkrtq0OpMBOKhv6yXu0T/GdmfGRpW4EnEtJQ2wQ==","signatures":[{"sig":"MEUCIQCxYKyRE/Q/RXyk1WHLTHO1duwgX8SZrat4JALZ4XJbHQIgUzWWdLJCQ8hifV8IlI52eeWsSk8M1E17sFjLJuxITg4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQvj0CRA9TVsSAnZWagAAoGYP/260/FuRo6RBCmL9lbpP\nnFtN3B3QKIP/41EjsQUvb9N9L/hUi4BOH2I4RR96c0aksM4dS2B0B+EE+U/g\nQMnAgMILvygS6Nt6rQVOWmjIjwKZYaxbQReo2m28VMls5Bv3k82nqQH2SODM\nQGPmL9GHFp11g7UALxa9ovExYH8rcVO2RBAxZITPcF4HHYhDMbbTZvJO4Bzo\nsb+zHcBpNcReWzS9G+9qPZvoy0O3b+tIq8MKYSvK5lhA2x3cnLz/eqwIl98L\nXKQvX34IwI1p0s0ZHEmxtQcSpzjZNLYNw3/YzzOqglJpD4OhOSPlsKZcVDP7\n1sUgNbmF8tZU08SqLNoF9CDwcQjxvLMtJf3Uifo9QYfgLyaOuqqzax6mdN6B\n317t89ZXVOhkbFQd6SAv+Dx0SJnLHMnQkVh4qh45edFeodazmrfTtrXJ/dlS\nUM4gb726/glGMVI7fbPtLeCQItJeMX8mzA7TvFi237l7Ynwdo/alhOL9kurG\nVrJ76IYMtmqEhWMZcEYZ1kuj4rNAbOPFV5bHvW8/M3/rsgjlKFs/ce2fWfnS\nVlRk4gDdfogb0ljE528p5D3MtvLjTjDUlgrQGCVPRZEsSHxI5ZFdbs+rk6Aj\nU72RSl2ReltSzpoYTDTIni6xPqLublO5++K37bCRXfpuethZFY34bB4YXeWD\nXeZn\r\n=gTQF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"cbrafter","email":"craig@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"7.20.2","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.17.3","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.6.9-1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.65-1_1631779060387_0.7908798553961667","host":"s3://npm-registry-packages"}},"0.2.65":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.65","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.65","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"71b771d35add223a627c57c1a7bfdc42960eed11","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.65.tgz","fileCount":29,"integrity":"sha512-UnFv6iLBpQiGev7jQfK/yXtCAksDQn+EjCTx8r8jrwWr+PsUziXECwINVrgFQ9RTvFoeVePkJDONdSCS79f1nQ==","signatures":[{"sig":"MEQCIH5Yh6nKtQMt4wOFjVcqzGHw4U5+cYkdJdyA10RlfIG3AiAol4xmVp8So0+NwcZm+OAwuJrStrTPA2xnngOeci6IrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQvm9CRA9TVsSAnZWagAAeKIP/jZcfKQAZQIF/RcQ8LQk\nUO89Ph/tlp1CIs4OgigfrANvBG/oIcivEAdi9UswPOx5SH1HdnV6cdbfBakP\nVnNWSHKon02SovwOLfOMb4Kg6tsls8lvORAmwRJMY8LaN/zNyKe1B9XCeL4D\nDjXQ6K1HDfdTL9yDOIq6Cd0Mutdzw7hJ0/brYFgnV/vAXmDRFtAMGZcswqhI\n9SzAmWN60jSj9gWifCT/ByRunbS0qepr9h+t7RKPEQmf6DmrKCPDFwidjblA\nbRnsYmD6iSN8uX1OsR70n+kYeu+lvMy2s8k7d7MNzkb9uo3X9QXChHdjvsQ3\nV7rhDTjvteCyo0NAz2GYD1GGs9rzcpTD4nPob/NjpNVKwXHK51U22o111PpM\niaChOsM5eI3EVUeTqLk/8lWbmjqfVkbVAFYLZQD2rH3bN7DfaXRiAmJXuTIh\n7D+W8UdsUDwrE9kbcQuJcnXN7R4wjK8LFUSwAWLG1Fpp9rPb3bEhdE6RH9L+\n8XhZqHIKsejIfoygZVEs13bKrjOoN9EB80iPgvawjTsmuTeaROHeJE+4/7wC\nY63zrCsm/2IPUeHzS/leRqpFPyRFh3BxWK9pQI//pFiMRO2dIyZuZdM2sbuO\no0vAv0i1lAVcV2NEsktROVSoCSrFvNy++lbZ8LCWA659YQGWnTfdIHDf2tkC\nBtPH\r\n=w9Tb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"cbrafter","email":"craig@nquiringminds.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"7.20.2","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"14.17.3","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.6.9"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.65_1631779261630_0.2251961390694175","host":"s3://npm-registry-packages"}},"0.2.66":{"name":"@nqminds/aliyun-oss-bridge","version":"0.2.66","keywords":["aliyun","oss","bridge","tdx"],"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","_id":"@nqminds/aliyun-oss-bridge@0.2.66","maintainers":[{"name":"nqminds-org","email":"nqminds@gmail.com"},{"name":"iglautier","email":"ivan@nquiringminds.com"},{"name":"mereacre","email":"mereacre@gmail.com"},{"name":"antmcc","email":"anthony@nquiringminds.com"},{"name":"toby.ealden","email":"toby.ealden@gmail.com"},{"name":"aloisklink","email":"alois.klink@gmail.com"},{"name":"cbrafter","email":"craig@nquiringminds.com"},{"name":"ashleysetter","email":"ash@nquiringminds.com"}],"contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"dist":{"shasum":"065c38583ce4a6eaff30ce079bcf066909322dd8","tarball":"https://registry.npmjs.org/@nqminds/aliyun-oss-bridge/-/aliyun-oss-bridge-0.2.66.tgz","fileCount":29,"integrity":"sha512-Cox6QYJzvR60orovIAQVLL4sK7Qm7utDeqOomZ+83hCEw9XEo0fIdO5zVlmjc/o6MDW+3wOmvk+OY+2zpF/8TA==","signatures":[{"sig":"MEUCIGIbHQ6zKQ/epKiUUEzAwMlQNDHVEqmy1iJRyMM/U2DBAiEAxZduKXl3qVUHDARJdNdabTi7tNDUMeDPglOsY5aSy3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsIBoCRA9TVsSAnZWagAAMzAQAIrsuXKL5ZNN57S4VWla\nxgN9Cil6X6FjZhf9rvuETgUhasWRjQW9TUFzZHIDTXnNtP2UU86CwdNKEFG3\nONb12XbxlgCyBSK1wS/XbWyStCoAeI8ejj34APrjryn79CmjFYLNGYox9yzO\nYGl78SQ7QidAGbfSepycxgr4mJWKuAXhIdjRP4ixhJ5YJ3Tmzu+7NU3hiNud\nEZM7FzRPKgvygXLP+LV29mcNmQXlZBUaNICxhSE4zE1lX5iGyGFqI9x5noT/\nJIZaQ1P09IHSazU+RF/ne2nicH9V/1+ChM+V7WPqDfeSjxQZTKQz2CzfBSh3\nD6ro3RoztBvluTndJsfQDf0HNYHurX+oNLzGyoQRg5E3eIArbc0PP2GCHR4A\nflfQb3kmr1kDVXKD7tFNMMHKyItiCyoGEVdUxa99T6PxspMSgGTmIDV/d+BI\nTjZgyId3HLcRceGOg1ZfZdX4E7zgQrxCnJ+OWMfFTJuLb8QyoqqNf+k+A2Bx\ntQ9e+2wLo8OdJQmFfDxZynaqkEtX2V/HLRSyeb1X4/Ix7WesB313GepMw0tm\nCfH899KFZCuZEbYTy2LIm0TwkFiNPs6TnNnZbpFbpIxINq30IFbpFpDnOaEj\nBN9hvLJ5LEjMWpOoOs9UYipxGwiermqcQX6c0sHcCNZ2ASQBdi8Mblfe1WIm\n9oFd\r\n=VCRi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"5ee385d3bc109793ac0bc07177bb697964606157","scripts":{"test":"DEBUG=nqm-aliyun-bridge* mocha","prepare":"tsc"},"_npmUser":{"name":"aloisklink","email":"alois.klink@gmail.com"},"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"_npmVersion":"lerna/4.0.0/node@v12.22.3+x64 (linux)","description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","directories":{},"_nodeVersion":"12.22.3","dependencies":{"debug":"^4.3.1","ali-oss":"^6.15.0","aws-sdk":"^2.875.0","geotiff":"^1.0.1","@nqminds/nqm-api-tdx":"^0.9.1","@nqminds/cropdoc-schemas":"^1.6.9"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^8.2.1","sinon":"^9.2.3","dotenv":"^8.2.0","node-fetch":"^2.6.1","typescript":"^4.2.3","@types/node":"^14.14.37","chai-as-promised":"^7.1.1","node-fetch-progress":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aliyun-oss-bridge_0.2.66_1638957160217_0.8780135069001629","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-04T07:48:27.204Z","modified":"2024-09-05T11:12:27.324Z","0.2.2":"2020-08-04T07:48:27.304Z","0.2.4":"2020-08-28T07:48:12.328Z","0.2.5-alpha.0":"2020-12-02T15:16:51.394Z","0.2.5-alpha1":"2020-12-03T08:39:05.290Z","0.2.5-alpha.2":"2020-12-03T09:28:21.598Z","0.2.5-alpha.3":"2020-12-03T09:38:07.946Z","0.2.5-alpha.4":"2020-12-03T09:52:46.005Z","0.2.5-alpha.5":"2020-12-03T09:56:16.393Z","0.2.6":"2020-12-03T12:31:30.489Z","0.2.61":"2020-12-03T12:38:55.378Z","0.2.62":"2020-12-04T08:27:49.147Z","0.2.63":"2021-01-07T11:05:04.350Z","0.2.64":"2021-03-30T08:51:46.734Z","0.2.6-4.alpha.0":"2021-06-15T14:12:44.121Z","0.2.65-0":"2021-09-16T07:48:57.787Z","0.2.65-1":"2021-09-16T07:57:40.537Z","0.2.65":"2021-09-16T08:01:01.853Z","0.2.66":"2021-12-08T09:52:40.385Z"},"bugs":{"url":"https://github.com/nqminds/cropdoc/issues"},"author":{"name":"Alois Klink","email":"alois@nquiringminds.com"},"license":"UNLICENSED","homepage":"https://github.com/nqminds/cropdoc/tree/master/packages/aliyun-oss-bridge-server","keywords":["aliyun","oss","bridge","tdx"],"repository":{"url":"git+https://github.com/nqminds/cropdoc.git","type":"git"},"description":"A databot/application that stores metadata on the TDX, but stores data on Aliyun OSS.","contributors":[{"name":"Alois Klink","email":"alois@nqminds.com"},{"name":"iglautier","email":"ivan@nqminds.com"}],"maintainers":[{"email":"ionut@nquiringminds.com","name":"ionut_nqm"},{"email":"npm-bot@nquiringminds.com","name":"nqminds-bot"},{"email":"nqminds@gmail.com","name":"nqminds-org"},{"email":"mereacre@gmail.com","name":"mereacre"},{"email":"antmcc49@gmail.com","name":"antmcc"},{"email":"toby.ealden@gmail.com","name":"toby.ealden"},{"email":"ash@nquiringminds.com","name":"ashleysetter"}],"readme":"# Aliyun OSS Bridge Server\n\nCode for uploading metadata to TDX and actual data to Aliyun OSS or AWS S3.\n\n## Installation\n\nAs this package relies on the cropdoc-schemas package, you should use\nlerna to bootstrap this package.\n\n```sh\nnpx lerna bootstrap --scope @nqminds/aliyun-oss-bridge --include-dependencies\n```\n\n## Usage\n\n### Creating/loading config the appropriate TDX Dataset and OSS Bucket\n\n```js\nconst {GeoTiffStorer} = require(\"@nqminds/aliyun-oss-bridge\");\nconst TDXApi = require(\"nqm-api-tdx\");\n\nconst tdxApi = new TDXApi(tdxConfig);\nconst folderId = nqmUtils.shortHash(nqmUtils.constants.applicationServerDataFolderPrefix + tdxAuthentication.id);\nawait tdxApi.authenticate(tdxAuthentication.id, tdxAuthentication.secret);\nconst tdxResourceParams = {\n    // schema is automatically injected\n    name: \"my-super-cool-example-geotiff-dataset\",\n    parentId: folderId, // optional\n    tags: [\"geotiff\", \"example\", \"super-cool\"],\n};\nconst bucketParams = {\n    bucketProvider = \"AWS_S3\", // or ALIYUN_OSS\n    bucketName = \"my-cool-example-geotiff-bucket\",\n    region: \"eu-west-1\", // Aliyun endpoints can be found here https://www.alibabacloud.com/help/doc-detail/31837.htm\n    accessKeyId: \"MY_SECRET_AWS_LOGIN_ID\",\n    secretAccessKey: \"MY_SECRET_AWS_LOGIN_SECRET\",\n};\n// create a new GeoTiffStorer, bucket, and TDX dataset\nlet geoTiffStorer = await GeoTiffStorer.createNew(\n    tdxApi, tdxResourceParams, bucketParams,\n);\n// we can use datasetId with the TDXApi to run queries on the metadata\nconst datasetId = geoTiffStorer.datasetId;\n\nconst allCredentials = {\n    \"AWS_S3\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n    \"ALIYUN_OSS\": {accessKeyId: \"LOGIN\", secretAccessKey: \"Secret\"},\n};\n// automatically load the bucket based on an existing dataset stored on the TDX\ngeoTiffStorer = await GeoTiffStorer.fromExistingDataset(\n    tdxApi, datasetId, allCredentials\n);\n```\n\n### Uploading and downloading GeoTiffs\n\n```js\n// load geotiff from file\nconst geotiff = await fsPromises.readFile(\"example.tif\");\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"});\n// push a big file and view progress\nawait geoTiffStorer.push(geotiff, \"example-key\", {extraMetadata: \"hi\"}, {\n    progress(percentage, checkpoint) {\n        // you can store checkpoint if you want to resume the upload on failure\n        console.log(`Uploading ${percentage * 100}% done`);\n    },\n    partSize = 128 * 1000, // upload in 128kB chunks of data\n    retries: 5, // retry up to 5 times\n});\nconst {data} = await geoTiffStorer.get(\"example-key\");\n// useful for HTTP range requests\nconst downloadUrl = await geoTiffStorer.getUrl(\"example-key\");\n```\n\n## Testing\n\nTests are written in mocha.\n\nMake sure to set the environment variables (you can put then into a `.env` file):\n\n```.env\nS3_ID='AWS IAM ACCOUNT ID WITH PERMISSION TO PUSH TO S3'\nS3_SECRET='AWS IAM ACCOUNT SECRET'\nTDX_ID='TDX ID ON NQM-1.COM'\nTDX_SECRET='TDX SECRET ON NQM-1.COM'\nALIYUN_OSS_ID='ALIYUN RAM ACCOUNT ID WITH PERMISSION TO PUSH TO OSS'\nALIYUN_OSS_SECRET='ALIYUN RAM ACCOUNT SECRET'\n```\n\nTests can be run with:\n\n```\nnpm test\n```\n","readmeFilename":"README.md"}