
ð° ã¯ããã« ããããã1ãã¡ã€ã«ã®ã¢ããããŒããã§ãããŸã§æ²Œããšã¯ã
é³å£°ãã¡ã€ã«ãS3ã«ã¢ããããŒããããïŒ
ããã ãã®ã¯ãã§ããã
Firebaseã§ãã°ã€ã³ãããŠãŒã¶ãŒã«ã ã䜿ãããã€ããã ãããå®å šã«ã¢ããããŒãã§ããã眲åä»ãURLãæ¹åŒãéžãã§ãç°¡åã«APIãçšæããŠâŠã
ããšã¯ãã©ãŠã¶ãPowerShellãããã¡ã€ã«ãéãã ãïŒ
ããæã£ãŠããã®ã«ãäœåºŠãã£ãŠã倱æã
ãšã©ãŒã«æ¬¡ããšã©ãŒãå ã å·¡ãã®ã¢ããã€ã¹ãURLãå£ããã403ãåºããããäœãæ£è§£ãåãããªãã
ãã®èšäºã¯ããããªãå°ããªæ©èœã®ã¯ããªã®ã«ãã¡ããã¡ã沌ã£ããèšé²ããéãšã³ãžãã¢ç®ç·ã§äžå¯§ã«ãŸãšããåå¿é²ã§ãã
ããŸããããªãã£ãçç±ã¯ïŒ
ã©ãããã°æãåºããã®ãïŒ
ããšããèªã¿è¿ããŠããªãã»ã©ãããšæããããã«ã倱æãåŠã³ãå šéšæ®ããŠãããŸãã
ð¯ æçµãŽãŒã«
æçµçã«å®çŸãããã®ã¯ãFirebaseã§ãã°ã€ã³ãããŠãŒã¶ãŒã ãããé³å£°ãã¡ã€ã«ãS3ã«å®å šãã€ã¹ã ãŒãºã«ã¢ããããŒãã§ããæ§æã§ãã
ã€ã¡ãŒãžãšããŠã¯ð
- WebããŒã¿ã«ã«Googleãã°ã€ã³æ©èœãã€ãã
- èªèšŒããããŠãŒã¶ãŒã ãããã¡ã€ã«ãã¢ããããŒãã§ãã
- ãã¡ã€ã«ã¯ãã®ãŸãŸS3ã«ä¿åãããä»ã®äººã«ã¯ã¢ã¯ã»ã¹ã§ããªã
- èªåçã«ãã¡ã€ã«åãä¿åå ãæŽçããã
ãšãããããªãã»ãã¥ãªãã£ãæäœæ§ãäž¡ç«ããé³å£°ã¢ããããŒãæ©èœãç®æããŠããŸãã
ãã ãããããªããã¹ãŠãäžæ°ã«äœãã®ã¯ãªã¹ã¯ã倧ããããããŸãã¯ä»¥äžã®åºæ¬éšåããåãçµã¿ãŸããð
â ä»åã®ãã£ã¬ã³ãžïŒå段éïŒ
- ããµãŒããŒã«ãç¹å¥ãªâããªãã ãã䜿ããã¢ããããŒãçšã®çœ²åä»ãURLâãäœã£ãŠãããã
- ããã®URLã䜿ã£ãŠãèªåã®ããœã³ã³ããé³å£°ãã¡ã€ã«ïŒtest.m4aïŒãã¢ããããŒãããã
ãã®ã¢ããããŒãã®æµããã¡ãããšåããã©ããããPowerShellãšããããŒã«ã䜿ã£ãŠãã¹ãããŸããã
ð 眲åä»ãURLã£ãŠãªã«ïŒ
ããã¯ãç¹å¥ãªã«ã®ã®ã€ããURLãã®ããšã§ãã
ããšãã°ãããããã«ãŒã«ã決ããŠð
- ãã®URLã¯ãtest.m4aãšãããã¡ã€ã«å°çšïŒ
- ãã®URLã¯ã1åã ãæå¹ïŒ
- ãã®URLã§ã§ããã®ã¯âã¢ããããŒãâã ãïŒ
ãšãã£ãæ¡ä»¶ãããããããæ±ºããŠãããŸãã
ãããŠããã®ã«ãŒã«éãã«ãã䜿ããªãããã«ã«ã®ïŒçœ²åïŒãã€ããURLããµãŒããŒãçºè¡ããŠãããŸãã
ð€ PUTïŒããŒãŠãŒãã£ãŒïŒã£ãŠãªã«ïŒ
PUTãšããã®ã¯ãããã®å Žæã«ããã眮ããŠãã ããïŒããšããæäœã®ããšã§ãã
ããšãã°ãS3ãšããæ£ã«ãtest.m4aãšããé³å£°ãã¡ã€ã«ã眮ãããããšãã«ãPUTãšããåœä»€ã䜿ã£ãŠãã®ãã¡ã€ã«ã眮ãã«ãããŸãã
ð¥ Step 0ïŒããããã®å§ãŸãïŒæåã®æ§æïŒ
æåã¯ãšãŠããããããªæ¹æ³ã§è©ŠããŸããã
ããœã³ã³ã®ãã©ãŠã¶ïŒGoogle Chromeãªã©ïŒã®äžã®ããŒã«ããããªURLïŒGETãªã¯ãšã¹ãïŒãå ¥ããŠð
api.act-loop.com/upload-url?filename=test.m4a
EnterããŒãæŒãã ãã§ããµãŒããŒããã¢ããããŒãçšã®ç¹å¥ãªURLããè¿ããŠãããããã«ããŠããŸããã
ð¬ GETãªã¯ãšã¹ãã£ãŠãªã«ïŒ
ããã¯ãã¡ãã£ãšãã®ããŒã¿ãã ããããšãµãŒããŒã«ãé¡ãããæ¹æ³ã®ããšã§ãã
ä»åã§ãããšããtest.m4aãšãããã¡ã€ã«ãã¢ããããŒãããããã®URLããã ããããšãé¡ãããŠããã€ã¡ãŒãžã§ãã
ðŽ ã§ãâŠæã£ãŠãããå šç¶ããŸããããªãã£ãïŒ
次ã®ãããªåé¡ããããããåºãŠããŸããã
â åé¡â ïŒURLã®äžã®æ å ±ãéäžã§æ¶ãã¡ãã
ãã£ãã®ã?filename=test.m4aãã®éšåãããµãŒããŒã«å±ããŠããªãã£ãããéäžã§åããŠãããããŸããã
â åé¡â¡ïŒãã©ãŠã¶ãå 容ãåæã«è§£éããŠãã
ãµãŒããŒã¯æ¬åœã¯ãããªæãã®ã¡ãã»ãŒãžãè¿ãããã®ã«ð
{ "url": "https://actloop-audio-dev.s3.ap-northeast-1.amazonaws.com/..." }
ãã©ãŠã¶ãåæã«ð
- ãã¡ã€ã«ãããŠã³ããŒãããããšããã
- 衚瀺ããããããããïŒæ¹è¡ãåæã«å ¥ãïŒ
- æååãã£ãœããªã£ãã
ããŠããŸã£ãŠãå 容ãã³ããããã®ãã倧å€ã§ããã
â åé¡â¢ïŒã/upload-urlããšã/upload-url/ããéãæ±ãã«ãªã
ãã®2ã€ã®URLã®éãã§ð
- ãµãŒããŒãèªåã§URLãå€ããŠããŸã£ãã
- äžã«æžãããfilename=ããã®æ å ±ãæ¶ããã
ããããšããã£ãŠãæ··ä¹±ããŸããã
ãã㯠NginxãExpressã®ã«ãŒãã£ã³ã°ä»æ§ãé¢ä¿ããŠããŠã/
ã®æç¡ã§å¥ãšã³ããã€ã³ãæ±ãã«ãªãå Žåããããæ··ä¹±ã®åå ã«ã
ð¬ NginxïŒãšã³ãžã³ãšãã¯ã¹ïŒã£ãŠãªã«ïŒ
ããã¯ããµãŒããŒã®åä»ä¿ãã®ãããªãã®ã§ãã
ã ãããã¢ã¯ã»ã¹ããŠãããšãã«ãããã®äººã¯ã©ãã«è¡ãããã®ããªïŒããšèããŠãäžã®ã¢ããªã«æ¡å ããŠãããŸãã
ã§ããã®åä»ä¿ããããããURLã®æåŸã«ã¹ã©ãã·ã¥ããªããïŒ çŽããŠãããïŒããšæ°ãããããŠåæã«URLãå€ããŠããŸãã¯ã»ããã£ããã§ãã
ð¬ Expressã£ãŠãªã«ïŒ
ããã¯ããµãŒããŒã®äžã§åããŠãããã¢ããªæ¬äœãã§ãã
ãã£ãã®åä»ä¿ïŒNginxïŒãæ¡å ããŠãããã客ããã«å¯ŸããŠããã¯ãã¯ããããã§ããããšå¿çããã®ããã®Expressã§ãã
ã§ããã®ã¢ããªãã/upload-urlããšã/upload-url/ããå¥ã®ãã®ãšããŠæ±ã£ãŠããŸãã¯ã»ããã£ãŠãã¡ãããšåå¿ããŠãããªãããšããããŸããã
â 4. URLãéäžã§æ¹è¡ãããŠå£ãã
PowerShellããã°ã«è¡šç€ºãããURLãã³ããŒãããšãéäžã§æ¹è¡ãããŠããããã¹ããŒã¹ãå ¥ã£ãŠãããããŠãS3ã«ãã®ãŸãŸè²Œãä»ãããšç¡å¹ãªURLæ±ãã«ãªã£ãŠããŸãã
ãã®ããã§ãURLèªäœã¯åã£ãŠããã®ã«äœ¿ããªãããšããäºæ ã«ã
ð§ çµè«ïŒãã®æ¹æ³ã¯æã£ãããäžå®å®ã ã£ãïŒ
GETãšããæ¹æ³ã§URLã«æ å ±ãã€ããŠéãããæ¹ã¯ã
- ãã©ãŠã¶ããµãŒããŒã®ã¯ã»ã«å·Šå³ããããã
- URLã®äžã®æ å ±ãå£ãããã
- å 容ã®ç¢ºèªãããã«ãã
ãšããåé¡ãå€ããŠãæã£ããããã£ãšé£ããã£ãã§ãã
ð¡ ããã§ããã£ãããšïŒæèšïŒ
æã£ãŠãããš | å®éã«ã¯âŠ |
---|---|
ã¯ãšãªïŒ?以éã®æ å ±ïŒã§éãã°æ¥œã§ãã | â ãµãŒããŒããã©ãŠã¶ããããå£ãã¡ããããšããã |
ãã©ãŠã¶ã§éãã°äžèº«ãèŠããã§ãã | â JSONã¯åæã«å£ããããããŠã³ããŒããããããã |
/upload-url ãš /upload-url/ ã¯åããããªãïŒ | â å®ã¯éã£ãŠãå¥ã ã«æ±ãããŠããŸãããšããã |
ð å ã å·¡ãïŒGPT-4oãšã®ãããšã
æåã«å°ã£ããšãããŒãã¯AIã®ãGPT-4oãã«çžè«ããŠã¿ãŸããð€
ããããã¢ããã€ã¹ããããã®ã§ããã€ãé Œãã«ããŠããçžæ£ã§ãã
ã§ãä»åã¯âŠ
ãªããããããã話ãããããåã£ãŠãå
šç¶åã«é²ãŸãªãðŠ
ããšãã°ãã/upload-urlãã£ãŠãããµãŒããŒã®å ¥ãå£ïŒãšã³ããã€ã³ãïŒã«ã¢ã¯ã»ã¹ãããšããURLã®æåŸã«ãã¹ã©ãã·ã¥ïŒ/ïŒããä»ãããä»ããªããã§åå¿ãå€ããããšã«æ°ã¥ããŸããã
GPT-4oã«èããŠã¿ããšã
ãã¹ã©ãã·ã¥ããã§ã¢ã¯ã»ã¹ããŠã¿ãŠãã ããã
â ãã£ãŠã¿ã â ã¯ãšãªãæ¶ããð±
ãã¹ã©ãã·ã¥ãªãã«æ»ããŠã¿ãŠã
â æ»ããŠã¿ã â ãŸãå¥ã®ãšã©ãŒðµ
ãšããæãã§ãããã£ã¡ïŒããããã£ã±ãã£ã¡ïŒâŠãïŒãã£ããšåããããïŒããšããã«ãŒããå§ãŸããŸããã
ããã«ãGPT-4oã¯
- ãããã¯NginxãšãããµãŒããŒèšå®ã®ããããã
- ããããã¯ãã©ãŠã¶ã®ãã£ãã·ã¥ã®åœ±é¿ãããããŸããã
- ãã¯ãããŒæ¶ããŠã¿ãŠãã ããã
- ããªãã€ã¬ã¯ãã®èšå®ã調æŽããŠã¿ãŠã¯ïŒã
ãªã©ãã©ãã©ãè©±ãæ·±ãïŒæšªã«åºãã£ãŠãããŸããã
ãã®ãã¡ãããšããšäœãããããã£ãã®ãããåãããªããªã£ãŠããŠâŠ
ãŒãã®é ã®äžãã°ã«ã°ã«ç¶æ
ð
ãã¶ããGPT-4oã¯æ£ããããšãèšã£ãŠãããŠããã®ã ãšæããŸãã
ã§ãããã¯ãšãªïŒ?以éã®URLã®æ
å ±ïŒãããŸãäŒãããªãããšããæ ¹æ¬ã®åé¡ã¯ã
ã©ãã ã詊ããŠã解決ããŸããã§ããã
ãã®ãšãæã£ãã®ã¯ã
ãèªåã§çè§£ã§ããªãè€éãªèšå®ã«æ·±å
¥ããããšãè¿·åã«ãªãã
ãšããããšã
ãã®ãŸãŸããããªããªãâŠãšããããšã§ãæãåã£ãŠãå¥ã®èãæ¹ãã«åãæ¿ããããšã«ããŸããð§
ãããããGETãããªããŠPOSTã§éãããšããæ¬¡ã®äœæŠã§ãð®âš
ïŒãã®åãæ¿ãã®ãã£ããããããã®ã¯ãå¥ã®AIã¢ãã«ïŒGPT-4 âo3â ã§ããðïŒ
ð¡ 転æ©ïŒGPT-4ïŒo3ïŒã«çžè«ããŠã¿ããâŠ
GPT-4oãšã®ãããšãã§ããããè¿·ã£ãŠããŸã£ããŒãã¯ãæ°åãå€ããŠãå¥ã®AIãGPT-4ïŒo3ïŒãã«çžè«ããŠã¿ãããšã«ããŸããð§âð»âš
ããããâŠ
ãªããšãã£ãã®æ°è¡ã§ããŸã£ããæ°ããèãæ¹ãããããã§ãïŒ
ð o3ãèšã£ãŠãããã¢ããã€ã¹ã¯ãã¡ãð
- ãGETãããªããŠãPOSTãšããããæ¹ã«å€ããŠã¿ããïŒã
- ãURLã®ããšã«æ å ±ãã€ããããããªããŠãJSONã£ãŠããã«ã¿ãã§éã£ãŠã¿ãŠã
- ãfetchãšããPowerShellã䜿ãã°ãã£ãšå®å®ããŠéãããã
ãããèãããšããæåã¯ã¡ãã£ãšãã³ãšæ¥ãŸããã§ããð€
ã§ãããšã«ãããã£ãŠã¿ããïŒããšæã£ãŠãPowerShellã§è©ŠããŠã¿ãããšã«ã
ãããšâŠ
ð® POSTã§æ
å ±ãéã£ãŠã
ð ãµãŒããŒããç¹å¥ãªURLãããã£ãŠã
ðŠ ãã®URLã䜿ã£ãŠãã¡ã€ã«ãéããšããæµãããã¹ã«ã¹ã«ãã£ãšã€ãªãã£ããã§ãïŒ
ãããŠãã©ãçããã³ãŒãããã¡ãð
$response = Invoke-RestMethod `
-Uri "https://api.act-loop.com/upload-url" `
-Method POST `
-ContentType "application/json" `
-Body '{"filename":"test.m4a"}'
$url = $response.url.Trim()
ãã®ã³ãŒãã¯ããµãŒããŒã«ããã®ãã¡ã€ã«åã§ã¢ããããŒããããã§ãããšäžå¯§ã«ãé¡ãããŠãããã«å¯ŸããŠãµãŒããŒãããããããã®URLã䜿ã£ãŠã¢ããããŒãããŠãïŒããšè¿ããŠãããããšããæµãã§ãð¬
ãããŸã§äœåºŠãã£ãŠãããŸããããªãã£ãã®ã«ãããæ¹ãå€ããã ãã§ãäžæ°ã«éãéããæããããŸããð
ãåããšããã§ã°ã«ã°ã«ããŠããªããšæã£ããšãã¯ãèŠç¹ãå€ããŠã¿ãããšã®å€§åãããããã§åŠã³ãŸããð§ âš
ð ã§ããŸãå£ïŒã403 Forbiddenã
POSTã§ãé¡ããããããµãŒããŒã¯ã¡ãããšç¹å¥ãªURLïŒçœ²åä»ãURLïŒãè¿ããŠãããŸããã
ããã£ããïŒã€ãã«ãããŸã§æ¥ããïŒããšå€§ãããã³ð
ãã®URLã䜿ã£ãŠãPowerShellããé³å£°ãã¡ã€ã«ãã¢ããããŒãããããšãããšãã§ãã
ç»é¢ã«åºãŠããã®ã¯âŠ
â 403 Forbidden
ãã£ïŒïŒãŸããšã©ãŒïŒïŒð±
ForbiddenïŒãã©ãŒããã¥ã³ïŒã£ãŠãã䜿ã£ã¡ããã¡ã§ãããçŠæ¢ãããŠããŸããã£ãŠæå³ã§ãã
ãããã¯äœããããããâŠããšæã£ãŠãããããªãšããããã§ãã¯ããŠã¿ãŸããã
- URLãã¡ãããšåã£ãŠã â
- ãã¡ã€ã«ãããã â
- æžãæ¹ãééã£ãŠãªãâŠã¯ã â
ããã§ããªããããµãŒããŒã«æãããŠããŸããã§ãð¥º
ãã®ãšãããããäžæè°ãªæ°æã¡ã§ããã
ãããªããåºããŠãããURLããèšãããéãã«äœ¿ã£ãŠãã®ã«ããªããã¡ãªã®ïŒãã£ãŠã
ãªãã ããããåºã«å ¥ã£ãŠããããã£ãŠèšãããã®ã«ãããå ¥ãããšãããããã£ã±ãã¡ã§ãïŒãã£ãŠèšããããããªæ°åã§ããðªð ââïž
ã§ãããã§ãããããªãã£ãã®ããä»åã®å€§ããªãã€ã³ãã§ãâš
ãã®403ãšã©ãŒã®âã»ããšãã®åå âã¯ã次ã®ã»ã¯ã·ã§ã³ã§ããããèŠããŠããŸãâŠð
ð§ åå ã®æ žå¿ïŒContent-Type ãåã£ãŠããªã
403ãšã©ãŒã®æ¬åœã®åå ãããã¯âŠ
ãã¡ã€ã«ã®ãçš®é¡ããã¡ãããšäŒããŠããªãã£ãããšã§ããð³
å®ã¯ããµãŒããŒãè¿ããŠããã眲åä»ãURLã®äžã«ã¯ããããªãµãã«æžãããŠãããã§ãð
...&Content-Type=audio%2Fm4a&...
ããã¯ããã®URLã䜿ããšãã¯ããã¡ã€ã«ã®çš®é¡ã audio/m4aïŒé³å£°ãã¡ã€ã«ïŒãšããŠéã£ãŠãïŒããšããã«ãŒã«ãæå³ããŠããŸãð
URLã®äžã«ããã®ãã¡ã€ã«ã¯ãé³å£°ã§ãããã£ãŠãããçŽæãçµã¿èŸŒãŸããŠãããã§ããã
ã§ãããŒãã䜿ã£ãŠãã Invoke-RestMethod
ãšããPowerShellã®åœä»€ã¯ã
ãã®ãçŽæïŒContent-TypeïŒãã¡ãããšäŒããŠããªãã£ããã§ãâŠðŠ
ã€ãŸãããããããšð
- ãµãŒããŒïŒããã®URLã䜿ããšãã¯ãé³å£°ãã¡ã€ã«ã ã£ãŠãããããã«éã£ãŠãã
- PowerShellïŒããã¡ã€ã«éã£ããïŒïŒã§ãçš®é¡ã¯èšã£ãŠãªãïŒã
- ãµãŒããŒïŒããã£ãããã«ãŒã«éåã ãïŒïŒ403ãšã©ãŒã§ãïŒïŒã
ã¿ãããªããéããèµ·ããŠãããã§ãð«š
èŠãç®ã«ã¯ã©ãããããããªãããã ã£ããã©ãå®ã¯âãã¡ã€ã«ã®çš®é¡âãšããå°ããªæ¡ä»¶ãå®ãããŠããªãããšãã403ã®åå ã ã£ããã§ãã
ããã«æ°ã¥ããããšã§ãã€ãã«403ã®è¬ãè§£ããŠã次ã®è§£æ±ºæ¹æ³ã«ã€ãªãã£ãŠãããŸãð§©âš
ðª 解決çïŒInvoke-WebRequest
ã«å€æŽïŒ
ãã¡ã€ã«ã®ãçš®é¡ããã¡ãããšäŒãã£ãŠããªãããšã403ãšã©ãŒã®åå ã ãšããã£ããŒãã¯ããããããã¡ãããšçš®é¡ãäŒããŠãããæ¹æ³ã«å€ããŠã¿ããïŒããšæããŸããð¡
ããããã¡ãð
Invoke-RestMethod
â Invoke-WebRequest
ã«å€æŽïŒâš
ãã®æ°ããåœä»€ïŒInvoke-WebRequestïŒã¯ããã¡ã€ã«ã®çš®é¡ïŒContent-TypeïŒããã¡ããšä»ããŠãããã®ã§ããµãŒããŒããã¯ãOKïŒã«ãŒã«å®ã£ãŠããããšå€æããŠãããŸãð®
PowerShellã§å®è¡ããã³ãŒãã¯ããð
Invoke-WebRequest `
-Uri $url `
-Method PUT `
-InFile "C:\Users\aziso\OneDrive\Desktop\test.m4a" `
-ContentType "audio/m4a"
ãã®ã³ãŒãã¯ã
- ãã£ããµãŒããŒããããã£ãç¹å¥ãªURLã«å¯ŸããŠ
- é³å£°ãã¡ã€ã«ïŒtest.m4aïŒã
- ãããã¯é³å£°ã§ãããïŒããšäŒããªãã
- ã¢ããããŒãããããšããå 容ã§ãð§
ãããŠâŠããããããªããå®è¡ããŠã¿ããšâŠ
â StatusCode: 200
ãã£ãããããïŒïŒïŒðâš
ããã¯ãã¢ããããŒãæåïŒãã®åå³ã§ãïŒ
ã€ãã«ãtest.m4a ãšãããã¡ã€ã«ããç¡äºã«S3ãšããã¯ã©ãŠãã®æ£ã«çœ®ãããšãã§ããŸããðŠð
ããŸãŸã§ãããããšã©ãŒãåºãŠã倱æãããŠãæ··ä¹±ããã£ããã©ããããããã«èª¿ã¹ãŠãããæ¹ãå€ããŠããã£ãšæåã§ããïŒ
ãã®ãããŸããã£ãç¬éãã¯ãã»ããšãã«æ°æã¡ããã£ãã§ãðð
ð§ ããããã€ã³ããŸãšã
ãããŸã§ã®äžã§ãã€ãŸãããå Žæãšããããã©ããã£ãŠä¹ãè¶ãããããããããããŸãšããŸãð¡
ð¹ ãã§ãŒãºâ ïŒURLãçºè¡ãããšãã
- åé¡ïŒ URLã®ããšã«ãã£ã€ããã?filename=ããããšããæ å ±ããéäžã§æ¶ããããæ£ããå±ããªãã£ãðµâð«
- åå ïŒ ãã©ãŠã¶ããµãŒããŒã®ã«ãŒã«ã§ãã¯ãšãªïŒ?以éã®éšåïŒãå£ããŠããŸã£ã
- è§£æ±ºïŒ GETãããªããŠPOSTã«ããŠãJSONãšããåœ¢ã§æ å ±ãéãããã«ããããã¡ãããšäŒããããã«ãªã£ãð®
ð¹ ãã§ãŒãºâ¡ïŒãã¡ã€ã«ãã¢ããããŒããããšãã
- åé¡ïŒ ãµãŒããŒãã403 ForbiddenïŒäœ¿ã£ã¡ããã¡ïŒããšãããšã©ãŒãè¿ããŠããð ââïž
- åå ïŒ ããã®ãã¡ã€ã«ã¯é³å£°ã§ãïŒaudio/m4aïŒããšããæ å ±ïŒContent-TypeïŒããã¡ãããšéãããŠããªãã£ã
- è§£æ±ºïŒ PowerShellã®ã³ãã³ãã
Invoke-RestMethod
ããInvoke-WebRequest
ã«å€ããŠãContent-Type ãæç¢ºã«æå®ãããããŸããã£ãð¯
â ãã®ãµãã€ãã¯ãªã¢ããããšã§ããPowerShellãã眲åä»ãURLã䜿ã£ãŠãé³å£°ãã¡ã€ã«ãS3ã«ã¢ããããŒãããããšããããã·ã§ã³ã¯ãã€ãã«å€§æåïŒðâš
ð¡ éãšã³ãžãã¢ã§ãããªããšãªãçè§£ãããŠããããããš
ä»åãã£ãããšã¯ãäžèŠããããããã«èŠãããã©ãå®ã¯ãã€ã³ããããããã°ããªããšãªãã€ã¡ãŒãžãã§OKãªãšããããããããããŸãð
ããã§ã¯ãããªããšãªãã§ãç¥ã£ãŠãããšåŸã§åœ¹ã«ç«ã€ããšãããŸãšããŸããð
ð 眲åä»ãURLã£ãŠãªã«ïŒ
â ãµãŒããŒãããã䜿ã£ãŠãããããšäžæçã«èš±å¯ããŠãããç¹å¥ãªURLã®ããšã
ãæéããã€ãšäœ¿ããªããªããæéã€ãã®éè¡èšŒã¿ãããªãã®ð«ã
ð€ PUTã£ãŠãªã«ïŒ
â ããã®å Žæã«ããã®ãã¡ã€ã«ã眮ããŠãã ããïŒããšããåœä»€ã®ããšã
ãåŠæ ¡ã®ããã«ãŒã«è·ç©ãå
¥ããã€ã¡ãŒãžðŠ
ð Content-Typeã£ãŠãªã«ïŒ
â ããã®ãã¡ã€ã«ã¯äœã®çš®é¡ã§ããïŒããšäŒããããã®ã©ãã«ã¿ãããªãã®ã
ãããšãã°ãããã¯é³å£°ãã¡ã€ã«ã§ãããããšããæãð§
ããããåã£ãŠãªããšãµãŒããŒã¯ãã«ãŒã«éåïŒããšæã£ã¡ããð
ð§Ÿ GETãšPOSTã®ã¡ããã¯ïŒ
â GETã¯ãããŒã¿ãã ããïŒããPOSTã¯ããã®ããŒã¿ãéããŸãïŒããšããæãã
ãGETã¯ãããããPOSTã¯ãã¬ãŒã³ãðãšæãã°OKïŒ
ð§ PowerShellã£ãŠãªã«ïŒ
â ããœã³ã³ã«ãããããŠãïŒããšåœä»€ããããã®é»ãç»é¢ã®ããšã
ãã¡ãã£ãšèŠãç®ã¯ããããã©ãæ£ããæžãã°ãã¡ããã¡ã䟿å©ãªéå
·ð»
ð¥ ãšã©ãŒã£ãŠå
šéšãããã®ïŒ
â 倧äžå€«ïŒã¡ãããšåå ãèŠãã°ããã³ããæžããŠããããšãå€ãã
ã403ãšã©ãŒã¯ãã«ãŒã«ãå®ãããŠãªããããã£ãŠæããŠãããŠãã ãð£
ãããããããšããïŒããšãªããšãªãåããã ãã§ããæ¬¡ã«åããããªå Žé¢ãæ¥ããšãã«å šç¶ã¡ãããŸãïŒ
ããããªããšããããã®ãŸãŸã«ãããã²ãšã€ãã€ãç¥ã£ãŠãèšèãã«å€ããŠããã°OKâš
ãããããããšããèªåã®ããšã°ã«å€ããã°ãã¡ãããšäœ¿ããç¥èã«ãªããŸãâºïž
âïžãŸãšã
ããããã£ãããšïŒ é³å£°ãã¡ã€ã«ãS3ã«ã¢ããããŒããã
ããŸããããªãã£ãçç±ïŒ
- GETã§éããšURLãå£ãããæ¶ããããã
- 403ãšã©ãŒã¯ããã¡ã€ã«ã®çš®é¡ïŒContent-TypeïŒããäŒãã£ãŠããªãã£ããã
ããŸããã£ãæ¹æ³ïŒ
- POST + JSONã§URLãååŸ
- Invoke-WebRequest + Content-Typeæå®ã§PUTã¢ããããŒã
åŠã³ïŒ
- èŠãç®ãåã£ãŠããŠããè£ã§ã«ãŒã«ãå®ãããŠããªããšåããªã
- èŠç¹ãå€ãããšãçªç Žå£ãèŠããããšããã
- ãšã©ãŒã®åå ã¯ãã¡ãããšæ¢ãã°âãã³ãâãããªãããã
ð§ é£ããããšã«ã¶ã€ãã£ããšãããããã£ããç«ã¡æ¢ãŸã£ãŠãããæ¹ãå€ãããã ãã§ãéãã²ãããããšãããïŒ
ããæããä»åã®ãã£ã¬ã³ãžã§ããðªð
ðª äžèšã§èšããšïŒ
ãGETãšContent-Typeã§ã€ãŸãããããPOSTãšWebRequestã«åãæ¿ããŠè§£æ±ºð¯ã