# ============================================================= # Quink Upload サンプルスクリプト (PowerShell / EXE 不要) # # ファイルをアップロードして発行された URL を返します。 # ここから先(メール・Slack 通知など)は用途に合わせて追記してください。 # # 使い方: # .\upload.ps1 -Files "C:\data\report.zip" # $urls = .\upload.ps1 -Files "C:\a.zip","C:\b.pdf" # $urls | ForEach-Object { Write-Host $_ } # # 戻り値(標準出力): # アップロードに成功したファイルの URL を 1 行ずつ出力します。 # # 前提: # Windows 10 1803 以降(curl.exe が標準搭載) # ============================================================= param( [Parameter(Mandatory = $true)] [string[]]$Files ) # ── 設定(ここを編集してください) ──────────────────────────── $API_KEY = "your-api-key-here" # マイファイルページで取得した API キー $UPLOAD_URL = "https://quink.jp/upload" # ───────────────────────────────────────────────────────────── $urls = @() foreach ($f in $Files) { if (-not (Test-Path $f)) { Write-Warning "ファイルが見つかりません(スキップ): $f" continue } Write-Host "Uploading: $(Split-Path $f -Leaf)" -ForegroundColor Cyan $response = curl.exe -s -X POST $UPLOAD_URL ` -H "X-API-Key: $API_KEY" ` -F "file=@`"$f`"" try { $json = $response | ConvertFrom-Json if ($json.url) { Write-Host " -> $($json.url)" -ForegroundColor Green $urls += $json.url } else { $detail = if ($json.detail) { $json.detail } else { $response } Write-Warning " [ERROR] $(Split-Path $f -Leaf): $detail" } } catch { Write-Warning " [ERROR] $(Split-Path $f -Leaf): $response" } } # URL を出力(呼び出し元でそのまま受け取れる) $urls