added token retrievel and upload
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,3 +1,8 @@
|
||||
# Ignore Secrets in .env WICHTIG
|
||||
|
||||
*.env
|
||||
*.json
|
||||
|
||||
# Ignore generated images
|
||||
|
||||
*.jpg
|
||||
@@ -18,3 +23,5 @@
|
||||
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
|
||||
|
||||
|
||||
30
Get-GDriveToken.ps1
Normal file
30
Get-GDriveToken.ps1
Normal file
@@ -0,0 +1,30 @@
|
||||
$client = Get-Content ".\client_secret.json" | ConvertFrom-Json
|
||||
|
||||
$clientId = $client.installed.client_id
|
||||
$clientSecret = $client.installed.client_secret
|
||||
$redirectUri = "http://localhost"
|
||||
|
||||
$scope = "https://www.googleapis.com/auth/drive.file"
|
||||
|
||||
$authUrl = "https://accounts.google.com/o/oauth2/v2/auth?client_id=$clientId&redirect_uri=$redirectUri&response_type=code&scope=$scope&access_type=offline"
|
||||
|
||||
Write-Host "Öffne folgende URL im Browser:"
|
||||
Write-Host $authUrl
|
||||
|
||||
Start-Process $authUrl
|
||||
|
||||
$code = Read-Host "Code aus URL eingeben"
|
||||
|
||||
$body = @{
|
||||
code = $code
|
||||
client_id = $clientId
|
||||
client_secret = $clientSecret
|
||||
redirect_uri = $redirectUri
|
||||
grant_type = "authorization_code"
|
||||
}
|
||||
|
||||
$response = Invoke-RestMethod -Method Post -Uri "https://oauth2.googleapis.com/token" -Body $body
|
||||
|
||||
$response | ConvertTo-Json | Out-File "token.json"
|
||||
|
||||
Write-Host "Token gespeichert!"
|
||||
54
Upload-A4ToDrive.ps1
Normal file
54
Upload-A4ToDrive.ps1
Normal file
@@ -0,0 +1,54 @@
|
||||
# Token laden
|
||||
$token = Get-Content ".\token.json" | ConvertFrom-Json
|
||||
$accessToken = $token.access_token
|
||||
|
||||
$folder = "C:\Temp\git\PS-SetEtikettSorte"
|
||||
|
||||
# 👉 HIER deine Google Drive Folder ID eintragen
|
||||
$DriveFolderId = "1kEmjnVL414XYLRfN597K7YKuiFs-FRBv"
|
||||
|
||||
$files = Get-ChildItem $folder -Filter "*A4*.jpg"
|
||||
|
||||
foreach ($file in $files) {
|
||||
|
||||
Write-Host "Upload: $($file.Name)"
|
||||
|
||||
$boundary = [System.Guid]::NewGuid().ToString()
|
||||
$LF = "`r`n"
|
||||
|
||||
# 🔥 HIER angepasst
|
||||
$metadata = @{
|
||||
name = $file.Name
|
||||
parents = @($DriveFolderId)
|
||||
} | ConvertTo-Json
|
||||
|
||||
$fileBytes = [System.IO.File]::ReadAllBytes($file.FullName)
|
||||
|
||||
$body = (
|
||||
"--$boundary$LF" +
|
||||
"Content-Type: application/json; charset=UTF-8$LF$LF" +
|
||||
"$metadata$LF" +
|
||||
"--$boundary$LF" +
|
||||
"Content-Type: image/jpeg$LF$LF"
|
||||
)
|
||||
|
||||
$bodyBytes = [System.Text.Encoding]::UTF8.GetBytes($body)
|
||||
|
||||
$footer = "$LF--$boundary--$LF"
|
||||
$footerBytes = [System.Text.Encoding]::UTF8.GetBytes($footer)
|
||||
|
||||
$finalBody = New-Object System.IO.MemoryStream
|
||||
$finalBody.Write($bodyBytes, 0, $bodyBytes.Length)
|
||||
$finalBody.Write($fileBytes, 0, $fileBytes.Length)
|
||||
$finalBody.Write($footerBytes, 0, $footerBytes.Length)
|
||||
$finalBody.Position = 0
|
||||
|
||||
Invoke-RestMethod `
|
||||
-Uri "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart" `
|
||||
-Method Post `
|
||||
-Headers @{ Authorization = "Bearer $accessToken" } `
|
||||
-ContentType "multipart/related; boundary=$boundary" `
|
||||
-Body $finalBody
|
||||
|
||||
Write-Host "Fertig: $($file.Name)"
|
||||
}
|
||||
0
UploadToGdrive.ps1
Normal file
0
UploadToGdrive.ps1
Normal file
Reference in New Issue
Block a user