This repository has been archived by the owner on Jul 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(samples): Add POSIX & Manifest samples (#67)
* feat(samples): Add POSIX samples * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Fix: `fs.promises` import * fix: clean-up created transfer job * chore: Add (safe) debug log * fix: misc bugs * chore: remove debug log * feat: add POSIX to POSIX sample - Also, update tests and comments * chore: typo & clean-up * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * refactor: styling * feat: Add POSIX Download sample * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: Add ending '/' * style: shorten variable * feat: Transfer Manifest request * fix: typo * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: `replaceAll` (not available in Node 12) -> `replace` Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
- Loading branch information
1 parent
795658b
commit 1056c9f
Showing
10 changed files
with
822 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
/** | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
'use strict'; | ||
|
||
async function main( | ||
projectId = 'my-project', | ||
sourceAgentPoolName = '', | ||
rootDirectory = '', | ||
gcsSinkBucket = '', | ||
manifestLocation = '' | ||
) { | ||
// [START storagetransfer_manifest_request] | ||
|
||
// Imports the Google Cloud client library | ||
const { | ||
StorageTransferServiceClient, | ||
} = require('@google-cloud/storage-transfer'); | ||
|
||
/** | ||
* TODO(developer): Uncomment the following lines before running the sample. | ||
*/ | ||
// Your project id | ||
// const projectId = 'my-project' | ||
|
||
// The agent pool associated with the POSIX data source. Defaults to the default agent | ||
// const sourceAgentPoolName = 'projects/my-project/agentPools/transfer_service_default' | ||
|
||
// The root directory path on the source filesystem | ||
// const rootDirectory = '/directory/to/transfer/source', | ||
|
||
// The ID of the GCS bucket to transfer data to | ||
// const gcsSinkBucket = 'my-sink-bucket' | ||
|
||
// Transfer manifest location. Must be a | ||
// const manifestLocation = 'gs://my-bucket/sample_manifest.csv' | ||
|
||
// Creates a client | ||
const client = new StorageTransferServiceClient(); | ||
|
||
/** | ||
* Creates a request to transfer from the local file system to the sink bucket | ||
*/ | ||
async function transferDirectory() { | ||
const createRequest = { | ||
transferJob: { | ||
projectId, | ||
transferSpec: { | ||
sourceAgentPoolName, | ||
posixDataSource: { | ||
rootDirectory, | ||
}, | ||
gcsDataSink: {bucketName: gcsSinkBucket}, | ||
transferManifest: { | ||
location: manifestLocation, | ||
}, | ||
}, | ||
status: 'ENABLED', | ||
}, | ||
}; | ||
|
||
// Runs the request and creates the job | ||
const [transferJob] = await client.createTransferJob(createRequest); | ||
|
||
const runRequest = { | ||
jobName: transferJob.name, | ||
projectId: projectId, | ||
}; | ||
|
||
await client.runTransferJob(runRequest); | ||
|
||
console.log( | ||
`Created and ran a transfer job from '${rootDirectory}' to '${gcsSinkBucket}' using manifest \`${manifestLocation}\` with name ${transferJob.name}` | ||
); | ||
} | ||
|
||
transferDirectory(); | ||
// [END storagetransfer_manifest_request] | ||
} | ||
|
||
main(...process.argv.slice(2)); | ||
|
||
process.on('unhandledRejection', err => { | ||
console.error(err.message); | ||
process.exitCode = 1; | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
/** | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
'use strict'; | ||
|
||
async function main( | ||
projectId = 'my-project', | ||
sinkAgentPoolName = '', | ||
gcsSourceBucket = '', | ||
gcsSourcePath = '', | ||
rootDirectory = '' | ||
) { | ||
// [START storagetransfer_download_to_posix] | ||
|
||
// Imports the Google Cloud client library | ||
const { | ||
StorageTransferServiceClient, | ||
} = require('@google-cloud/storage-transfer'); | ||
|
||
/** | ||
* TODO(developer): Uncomment the following lines before running the sample. | ||
*/ | ||
// Your project id | ||
// const projectId = 'my-project' | ||
|
||
// The agent pool associated with the POSIX data sink. Defaults to the default agent | ||
// const sinkAgentPoolName = 'projects/my-project/agentPools/transfer_service_default' | ||
|
||
// Google Cloud Storage source bucket name | ||
// const gcsSourceBucket = 'my-gcs-source-bucket' | ||
|
||
// An optional path on the Google Cloud Storage bucket to download from | ||
// const gcsSourcePath = 'foo/bar/' | ||
|
||
// The root directory path on the source filesystem | ||
// const rootDirectory = '/directory/to/transfer/source', | ||
|
||
// Creates a client | ||
const client = new StorageTransferServiceClient(); | ||
|
||
/** | ||
* Creates a request to transfer from the local file system to the sink bucket | ||
*/ | ||
async function transferDirectory() { | ||
const createRequest = { | ||
transferJob: { | ||
projectId, | ||
transferSpec: { | ||
sinkAgentPoolName, | ||
gcsDataSource: { | ||
bucketName: gcsSourceBucket, | ||
path: gcsSourcePath, | ||
}, | ||
posixDataSink: { | ||
rootDirectory, | ||
}, | ||
}, | ||
status: 'ENABLED', | ||
}, | ||
}; | ||
|
||
// Runs the request and creates the job | ||
const [transferJob] = await client.createTransferJob(createRequest); | ||
|
||
const runRequest = { | ||
jobName: transferJob.name, | ||
projectId: projectId, | ||
}; | ||
|
||
await client.runTransferJob(runRequest); | ||
|
||
console.log( | ||
`Downloading from '${gcsSourceBucket}' (path: \`${gcsSourcePath}\`) to '${rootDirectory}' with name ${transferJob.name}` | ||
); | ||
} | ||
|
||
transferDirectory(); | ||
// [END storagetransfer_download_to_posix] | ||
} | ||
|
||
main(...process.argv.slice(2)); | ||
|
||
process.on('unhandledRejection', err => { | ||
console.error(err.message); | ||
process.exitCode = 1; | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
/** | ||
* Copyright 2022 Google LLC | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
'use strict'; | ||
|
||
async function main( | ||
projectId = 'my-project', | ||
sourceAgentPoolName = '', | ||
rootDirectory = '', | ||
gcsSinkBucket = '' | ||
) { | ||
// [START storagetransfer_transfer_from_posix] | ||
|
||
// Imports the Google Cloud client library | ||
const { | ||
StorageTransferServiceClient, | ||
} = require('@google-cloud/storage-transfer'); | ||
|
||
/** | ||
* TODO(developer): Uncomment the following lines before running the sample. | ||
*/ | ||
// Your project id | ||
// const projectId = 'my-project' | ||
|
||
// The agent pool associated with the POSIX data source. Defaults to the default agent | ||
// const sourceAgentPoolName = 'projects/my-project/agentPools/transfer_service_default' | ||
|
||
// The root directory path on the source filesystem | ||
// const rootDirectory = '/directory/to/transfer/source', | ||
|
||
// The ID of the GCS bucket to transfer data to | ||
// const gcsSinkBucket = 'my-sink-bucket' | ||
|
||
// Creates a client | ||
const client = new StorageTransferServiceClient(); | ||
|
||
/** | ||
* Creates a request to transfer from the local file system to the sink bucket | ||
*/ | ||
async function transferDirectory() { | ||
const createRequest = { | ||
transferJob: { | ||
projectId, | ||
transferSpec: { | ||
sourceAgentPoolName, | ||
posixDataSource: { | ||
rootDirectory, | ||
}, | ||
gcsDataSink: {bucketName: gcsSinkBucket}, | ||
}, | ||
status: 'ENABLED', | ||
}, | ||
}; | ||
|
||
// Runs the request and creates the job | ||
const [transferJob] = await client.createTransferJob(createRequest); | ||
|
||
const runRequest = { | ||
jobName: transferJob.name, | ||
projectId: projectId, | ||
}; | ||
|
||
await client.runTransferJob(runRequest); | ||
|
||
console.log( | ||
`Created and ran a transfer job from '${rootDirectory}' to '${gcsSinkBucket}' with name ${transferJob.name}` | ||
); | ||
} | ||
|
||
transferDirectory(); | ||
// [END storagetransfer_transfer_from_posix] | ||
} | ||
|
||
main(...process.argv.slice(2)); | ||
|
||
process.on('unhandledRejection', err => { | ||
console.error(err.message); | ||
process.exitCode = 1; | ||
}); |
Oops, something went wrong.