npm install ostrich-gcloudUtility belt to easily connect with Gcloud in a Node.js environment.
Install the module
``bash`
npm i ostrich-gcloud
Add the gcloud keyfile and add the path as an environment variable
`bash`
keyfile=../path/to/keyfile.json npm start
Or, alternatively, add all keys seperately as environment variables
`bash`
project_id=my_project_id bucket=bucket_name ... npm start
`js`
import { Storage } from "ostrich-gcloud";
Uploads a file to the defined bucket.
All files will automatically be made publicly available.
| Argument | Type |
| ---------- | ------ |
| fileName | string |
| folderPath | string |
Example:
`js`
await uploadFileToBucket("index.html", "/tmp/path");
Uploads an entire folder to the defined bucket.
All files will automatically be made publicly available.
| Argument | Type |
| ---------- | ------ |
| folderPath | string |
Example:
`js`
await uploadFolderToBucket("/tmp/path");
`js`
import { DataStore } from "ostrich-gcloud";
Find one single result in a certain collection.
All options are the same as DataStore.findMultipleInDatabase.
Example:
`js`
await DataStore.findInDatabase("Todo", { id: "todo1" }, options);
Find multiple results of a certain selection.
Possible queries:
- equals: { id: 'some_id' }{ startTime: { gt: new Date().toISOString() } }
- greater than: { startTime: { lt: new Date().toISOString() } }
- lower than:
Example:
`js`
await DataStore.findMultipleInDatabase("User", {
email: "test@example.com",
options,
});
Options:
| Name | Type | Default | Description |
| ------------- | ------- | ---------------------- | ----------------------------------- |
| limit | number | 50 | Limit of results. Hard limit is 500 |
| offset | number | 0 | Index to start counting from |
| orderBy | string | created_at | Which property to order by |
| orderAsc | boolean | false | Sort ascending instead of desending |
| createdBefore | Date | Adds created_at filter |
| createdAfter | Date | Adds created_at filter |
Create new item in the DataStore
Example:
`js`
const id = await DataStore.saveToDatabase(
"Todo",
{ content: "Buy milk" },
options
);
Options:
| Name | Type | Description |
| ------------------ | ------ | ----------------------------------------------------------------------- |
| excludeFromIndexes | string | When you want to add a large value, you should exclude it from indexes |
These properties will be added automatically:
- created_at
- updated_at
- id
- \_deleted
Update a value in the DataStore
Example:
`js`
await DataStore.updateInDatabase(
"Todo",
todoId,
{ content: "Buy cereal" },
options
);
Options:
| Name | Type | Description |
| ------------------ | ------ | ----------------------------------------------------------------------- |
| excludeFromIndexes | string | When you want to add a large value, you should exclude it from indexes |
This command will automatically update the updated_at property.
Either update the value or create a new item in the DataStore
Example:
`js`
await DataStore.upsertToDatabase(
"Todo",
{ id: todoId },
{ content: "Buy cereal" }
);
Options: see options from saveToDatabase
This command will set the _deleted property of an item to true. It will also update updated_at.
Example:
`js``
await DataStore.softDeleteInDatabase("Todo", todoId);