Простая загрузка PowerShell в ведро GCP - PullRequest
0 голосов
/ 11 июня 2019

У меня есть тестовая корзина, которая общедоступна, и я использую простой файл .ps1 для загрузки файлов из нее.

Я пытаюсь сделать наоборот, загрузить файл TXT, но я не могуне заставить его работать.Я пытаюсь сделать это без установки командлетов gcloud b / c. Я хочу, чтобы это работало на любой машине.

$destination = "https://storage.googleapis.com/somerandombucket/test.txt"
$source = "test.txt"

$wc = New-Object System.Net.WebClient
$wc.UploadFile($source, $destination)

Возможно ли это?Я открыт для передачи учетных данных, но я надеюсь, что не нужно загружать командлеты gcloud, как я их не делал для загрузки через URL.Любая помощь будет оценена.

Это уведомление о сбое PowerShell:

Исключение, вызывающее «UploadFile» с аргументом (ами) «2»: «Возникла исключительная ситуация во время запроса WebClient».В C: \ xxxxxxxxx \ testupload.ps1: 6 char: 1 + $ wc.UploadFile ($ source, $ destination) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: WebException

1 Ответ

0 голосов
/ 13 июня 2019

Ниже приведены шаги для загрузки и загрузки объекта из и в общедоступную корзину Google Cloud Storage:

  1. Предоставление корзины Storage Object Viewer (для загрузки объектов) и Storage Object Creator (для загрузки в корзину) разрешений и присваивают их «allUsers».NOTE: This will make the bucket public and anyone from the internet will be able to upload objects and download them.
  2. Используйте этот upload.ps1 файл PowerShell для загрузки объекта
#Upload file to Google Cloud Storage
$dir = "C:\PATH\TO\OBJECT\image.jpg"
$bucket_name = "[BUCKET_NAME]"
$Uri = "https://www.googleapis.com/upload/storage/v1/b/$bucket_name/o?uploadType=media&name=image.jpg"

Invoke-RestMethod -Method Post -Uri $Uri -Header $header -ContentType "image/jpg" -InFile "$dir"
  1. Используйте этот download.ps1 файл PowerShell для загрузки объекта
#Download from Google Cloud Storage
$bucket_name = "[BUCKET_NAME]"
$bucket_file = "https://storage.googleapis.com/$bucket_name/image.jpg"
Invoke-RestMethod -Uri "$bucket_file" -Method Get -OutFile C:image.jpg

Я протестировал описанный выше метод и могу подтвердить вам, что мне удалось успешно загрузить и загрузить объект, используя приведенные выше сценарии PowerShell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...