Windows Azure Blob StorageãµãŒãã¹ãšGoogle Cloud StorageãµãŒãã¹ã®æ¯èŒãèŠãããšããå§ãããŸãïŒèè ã¯Amazon AS3ã«ã€ããŠãèšåããããšãå¿ããªãã§ãã ããïŒã
Google App Engineã¹ãã¬ãŒãžãšWindows Azureã¹ãã¬ãŒãžãæ¯èŒããèšäºãæžããšãããšæããŸããã ãã®èšäºã§ã¯ã Windows Azure Blob StorageãšGoogle Cloud Storageãæ¯èŒããŸã ã
ã·ãªãŒãºã®æåã®éšå-Windows AzureããŒãã«ã¹ãã¬ãŒãžãšAmazon DynamoDBã®æ¯èŒ
ããŒã2-Windows Azure Blob StorageãšAmazon Simple Storage ServiceïŒS3ïŒãæ¯èŒãã-ããŒãI
ããŒã3-Windows Azure Blob StorageãšAmazon Simple Storage ServiceïŒS3ïŒã®æ¯èŒâããŒãIIãæŠèŠ
ç¥èªïŒ Windows Azure Blob Storage- WABSããã³Google Cloud Storage - GCSã Amazon S3 - AS3
æŠå¿µçã«ã¯ãWABSãšGCSã¯åæ§ã®æ©èœãæäŸããŸã-ç°¡åã«èšãã°ãäž¡æ¹ã®ã·ã¹ãã ã¯å€§éã®éæ§é åããŒã¿ïŒéåžžã¯ãã¡ã€ã«ã®åœ¢åŒïŒãä¿åã§ããã¯ã©ãŠããã¡ã€ã«ã·ã¹ãã ã§ãã
ã©ã¡ãã®ã·ã¹ãã ããéåžžã¯REST APIã®ã©ãããŒã§ããé«ã¬ãã«èšèªã®ãã¡ã€ã«ãšãã©ã«ããŒããã³ãã®ä»ã®ã©ã€ãã©ãªãæäœããããã®REST APIãæäŸããŸãã APIã®åãªãªãŒã¹ã«ã¯ç¬èªã®ããŒãžã§ã³ããããWABSã«ã¯æ¥ä»å€ããããGCSã«ã¯çªå·ããããŸãã å·çæç¹ã§ã¯ãWABSããŒãžã§ã³ã¯2011-08-18ã§ ãGCSã¯ããŒãžã§ã³2.0ã§ããã
2ã€ã®ã·ã¹ãã ã®åæ§ã®æ©èœïŒ
- äž¡æ¹ã®ã·ã¹ãã ã¯ã2ã¬ãã«ã®éå±€ãæã€ã¯ã©ãŠãããŒã¹ã®ãã¡ã€ã«ã·ã¹ãã ã§ãã
- ã©ã¡ãã®ã·ã¹ãã ã§ãã倧éã®ããŒã¿ãé·æéãå®äŸ¡ã«ä¿åã§ããŸãã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãã³ã³ãã³ããäžæ£ã¢ã¯ã»ã¹ããä¿è·ããŸãã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãããŒã¿ãä¿è·ããããã®ã¢ã¯ã»ã¹å¶åŸ¡ã¡ã«ããºã ãæäŸããŸãã GCSã§ã¯ããããã¯WABSã®ACLãšã¯ãšãªæååèªèšŒ -ACL ãšå ±æã¢ã¯ã»ã¹çœ²åã§ãã
- ã©ã¡ãã®ã·ã¹ãã ã§ãããœãŒã¹ãªããžã§ã¯ãã®ä»»æã®æ°ã®ããŒãžã§ã³ãä¿åã§ããŸããã2ã€ã®ã·ã¹ãã ã®ããŒãžã§ã³ç®¡çã¡ã«ããºã ã¯ç°ãªããŸãã
ã³ã³ã»ããã®
ãããã®2ã€ã®ãµãŒãã¹ã«ã€ããŠè©³ãã説æããåã«ãããã€ãã®æŠå¿µãæç¢ºã«ããããšãéèŠã ãšæããŸãã WABSããã³GCSã®åºæ¬æŠå¿µã«ç²ŸéããŠããå Žåã¯ããã®ã»ã¯ã·ã§ã³ãã¹ãããã§ããŸãã
BLOBã³ã³ãããŒãšãã¹ã±ãã ïŒãããã®ãµãŒãã¹ãã¯ã©ãŠãå ã®ãã¡ã€ã«ã·ã¹ãã ã§ããå ŽåãWABS BLOBã³ã³ãããŒãšGCSãã±ããããã©ã«ããŒãŸãã¯ãã£ã¬ã¯ããªãšèŠãªããŠãã ããã WABSã¹ãã¬ãŒãžã¢ã«ãŠã³ããŸãã¯GCSã¢ã«ãŠã³ãã§ã¯ãããããŸãã¯ãªããžã§ã¯ããããããå«ããããšãã§ãã0å以äžã®ãããã³ã³ãããŒãšãã¹ã±ããã䜿çšã§ããŸãã
ã³ã¡ã³ãïŒ
- ãã¹ããããblobã³ã³ããããã¹ã±ãããªã©ã¯ãããŸããã ã©ã¡ãã®ãµãŒãã¹ãããã¹ããªãã§2ã¬ãã«ã®éå±€ãæäŸããŸãã ãã ããã©ã¡ãã®ã·ã¹ãã ã§ãããã¬ãã£ãã¯ã¹ã䜿çšããŠãã©ã«ããŒéå±€ã®é¯èŠãäœæã§ããŸãã
- ã³ã³ãããšãã¹ã±ããã®æ°ã«å¶éã¯ãããŸããã
- äž¡æ¹ã®ã·ã¹ãã ã¯ããªãœãŒã¹ãªã¯ãšã¹ãããã°ã«èšé²ããæ©èœãæäŸããŸãããã®æ©èœã¯ãGCSã§ã¯ããã°èšé²ããWABSã§ã¯ãã¹ãã¬ãŒãžåæããšåŒã°ããŸãã éãã¯ãGCSã§ã¯ãã°ããã¹ã±ããã¬ãã«ã§æ©èœããã®ã«å¯ŸããŠãWABSã§ã¯ãã°ã¯ã¹ãã¬ãŒãžã¢ã«ãŠã³ãã¬ãã«ã§æ©èœããããšã§ãã GCSã§ã¯ããã®ã³ã°ããŒã¿ã¯ããã®ã³ã°ããªã³ã«ãªã£ããšãã«èªåçã«äœæãããäºåå®çŸ©ãããããŒãã«ãšã³ã³ãããŒã®ãWABSã®åå¥ã®ãŠãŒã¶ãŒå®çŸ©ãã¹ã±ããã«é 眮ãããŸãã
BLOB ãšãªããžã§ã¯ã ïŒWABS BLOBãšGCSãªããžã§ã¯ãã¯ãBLOBã³ã³ãããŒãšãã¹ã±ããã«ããã¯ã©ãŠããã¡ã€ã«ã·ã¹ãã å ã®ãã¡ã€ã«ã§ãã
ã³ã¡ã³ãïŒ
- æ ŒçŽãããBLOBãšãªããžã§ã¯ãã®æ°ã«å¶éã¯ãããŸããããGCSã§ã¯ãã®æ°ã¯åçŽã«äžæã§ãããWABSã§ã¯ãã®æ°ã¯ã¹ãã¬ãŒãžã¢ã«ãŠã³ãã®ãµã€ãºïŒ100 TbïŒã«ãã£ãŠå¶éãããŸãã
- WABSã®ãªããžã§ã¯ãã®æå€§ãµã€ãºã¯1 TBã§ãããGCSã§ã¯å®çŸ©ãããŠããŸããã
- WABSã«ã¯2çš®é¡ã®BLOBããããŸãïŒãããã¯ïŒã¹ããªãŒãã³ã°ïŒåçããããªãããã¥ã¡ã³ããªã©ïŒã«äŸ¿å©ã§æå€§ãµã€ãºã200 GBïŒãããã³ããŒãžïŒã©ã³ãã ã¢ã¯ã»ã¹/èšé²æäœã«äŸ¿å©ã§æå€§ãµã€ãºã1 TBïŒã§ãã ããŒãžBLOBã䜿çšããäžè¬çãªã±ãŒã¹ã¯ãWindows Azureã®åœ¹å²ã§VHDããã£ã¹ã¯ãšããŠããŠã³ãããããšã§ãã GCSã«ã¯ãã®ãããªåé¢ã¯ãããŸããã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãè±å¯ãªããããšãªããžã§ã¯ãç®¡çæ©èœãæäŸããŸãã ä»ã®æäœãã³ããŒãããŠã³ããŒããããŠã³ããŒããããã³å®è¡ã§ããŸãã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãã³ã³ãã³ããäžæ£ã¢ã¯ã»ã¹ããä¿è·ããæ©èœãæäŸããŸããã¢ã¯ã»ã¹å¶åŸ¡ãªã¹ãã¡ã«ããºã ã¯GCSã§ããè©³çŽ°ã«æ§æããããã¹ã±ããå ã®åãã¡ã€ã«ã«å¯ŸããŠç¬èªã®ACLãäœæã§ããŸãã WABSã§ã¯ããã¹ãŠãBLOBã³ã³ãããŒã¬ãã«ã§çºçããŸãã
æãéèŠãª2ã€ã®æ©èœã¯ããŠã³ããŒããšããŠã³ããŒãã§ãããŸããããã«ã€ããŠèª¬æããæ¬¡ã«ä»ã®æ©èœãæ¯èŒããŸãããã
BLOBãšãªããžã§ã¯ãã®èªã¿èŸŒã¿
ã³ã³ãããšãã¹ã±ããã«ããããšãªããžã§ã¯ããããŒãããããšã«ã€ããŠè©±ããŸãããã ããŒãã¡ã«ããºã ã¯2ã€ãããŸãã1ã€ã®ãªã¯ãšã¹ãã®ãã¬ãŒã ã¯ãŒã¯å ã§ããããŸãã¯ãªããžã§ã¯ããå®å šã«ããŠã³ããŒãããããããããæçã«åå²ã§ããŸãïŒãããã¯ãŸãã¯WABSããŒãžãGCSã§ã¯ç¹å¥ãªååã¯ãããŸããïŒã
1åã®ãªã¯ãšã¹ãã§ããŠã³ããŒã
ããŠã³ããŒãããããŒã¿ãå°ãããæ¥ç¶é床ãè¯ãå Žåã1åã®èŠæ±ã§ãã®ããŒã¿ãå®å šã«ããŠã³ããŒãã§ããŸãã WABSã¯ããã«Put Blobã䜿çšããŸãã GCS- PUT ObjectãŸãã¯POST Objectã§ ã
ããŒã¹ãããŒããã
åäžã®ãªã¯ãšã¹ãã§å®å šã«ããŒãããã«ã¯éå¹ççãªããã°ããŒã¿ãå ±æã§ããŸãã ã©ã¡ãã®ã·ã¹ãã ã§ããããŒã¿ãæçïŒWABSã®ãããã¯ãŸãã¯ããŒãžãGCSã§ã¯ç¹å¥ãªååãæããªãïŒã«åå²ããåŸã ã«ããŒãããããšãã§ããŸãã WABSã§ã¯ããããã¯BLOBã®å ŽåãããŒãžBLOBã®Put Blockããã³Put Block Listã䜿çšããå¿ èŠããããŸã-Put Page ã GCSã¯ããã®ããã«POST Objectããã³Put Object颿°ã䜿çšããŸãã
ããŒã¿ããã£ã³ã¯ã§ããŒããããã©ãããæ±ºå®ã§ããçç±ã¯å€æ°ãããŸãã
- éåžžã«å€§ããªããŒã¿ãããŒãããå¿ èŠããããŸãã WABSã§ã¯ã1ãããã¯ã®BLOBã¯200 GBã«å¶éãããããŒãžBLOBã¯1 TBã§ããããšã«æ³šæããŠãã ãããGCSã§ã¯ãæå€§5 TBã®ãªããžã§ã¯ãã1ã€æã€ããšãã§ããŸãã ãã®ãããªããªã¥ãŒã ã¯ã1ã€ã®èŠæ±ã§ããŒãããã®ã¯å®çšçã§ã¯ãããŸããã
- æ¥ç¶é床ãé ãã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãæ°çŸããã³æ°åã®ãŠãŒã¶ãŒã®ãªã¯ãšã¹ããåæã«åŠçããããã«èšèšãããã¯ã©ãŠããµãŒãã¹ã§ããäž¡æ¹ã®ã·ã¹ãã ãèšå®ãããå¶éããé·ãå®è¡ããããšããªã¯ãšã¹ããå¶éãããŸã-WABSã§ã¯ã1 MBã®ããŒã¿ãããŠã³ããŒãããã®ã«10åã§ãã
- ããã°ããŒã¿ãæçã«åå²ãããšã䞊åèªã¿èŸŒã¿ãå¯èœã«ãªããŸãïŒãããããããŒã¿ã®èªã¿èŸŒã¿ãéããªããŸãïŒã
- ããŒã¹ã®ããŒããç ŽæããŠããå Žåããã®ããŒããç¹°ãè¿ãããšãã§ããŸãããåäžã®ãªã¯ãšã¹ãã§ããŒããã倧ããªããŒã¿ã®ããŒãã倱æããå Žåããã¹ãŠãå床ããŠã³ããŒãããå¿ èŠããããéå¹ççã§ãã
- ã·ã¹ãã ã®å¶é-WABSã§ã¯ããµã€ãºã64 MBãè¶ ããå Žåã1åã®ãªã¯ãšã¹ãã§ããŒã¿ãããŠã³ããŒãã§ããŸããã
åã·ã¹ãã ã«ããŒã¿ãæççã«ããŒãããæ¹æ³ãèŠãŠã¿ãŸãããã ããšãã°ã100 MBã®ãã¡ã€ã«ããã£ã³ã¯ã§ã¢ããããŒãããããšããŸãã
ç¶¿æ£
åããŒã¹ã®ãµã€ãºã1 MBã§ãããšããŸãïŒåããµã€ãºã®ããŒã¹ãçšæããå¿ èŠã¯ãããŸãããïŒ-100åãããŠã³ããŒãããå¿ èŠããããŸãã ãããã¯BLOBãååŸããŸããåãããã¯ïŒããŒã¹ïŒã«ã¯äžæã®èå¥åïŒBlockIdïŒããããŸãã ããŒãããã«ã¯ã Put Block颿°ã䜿çšããŸãã BlockIdã¯ãæå€§ãµã€ãºã64ãã€ãã®Base64ãšã³ã³ãŒãæååã§ãã ãã¹ãŠã®BlockIdïŒãã®äŸã§ã¯100ïŒã¯åãé·ãã§ãªããã°ãªããŸããã ãããã¯ãããŒãããé çªã¯é¢ä¿ãããŸãã-䞊è¡ããŠããŒãã§ããŸãã ãããã¯ãããŒãããåŸãWABSã¯ããããªããžããªã®ã©ããã«çœ®ãã7æ¥éä¿åããŸãã ãã¹ãŠã®ãããã¯ãããŒãããåŸã Put Block ListãåŒã³åºããŠããããã®ãããã¯ã確èªïŒã³ãããïŒããŸãã ãã®é¢æ°ãåŒã³åºããããŸã§ãããã«é£çµ¡ããããšã¯ã§ããŸããããŸãã7æ¥ä»¥å ã«ãããã¯ã確èªããªããšãã·ã¹ãã ã«ãã£ãŠãããã¯ãåé€ãããŸãã BlockIdãªã¹ãã®é åºã«åºã¥ããŠé¢æ°ãåŒã³åºããåŸãWABSã¯blobãåäœæããå©çšå¯èœãšããŠããŒã¯ããŸãã BlockIdã®å€ã¯é¢ä¿ãããŸããïŒãã¹ãŠGUIDã«ããããšãã§ããŸãïŒããPutãããã¯ãªã¹ãã䜿çšãããšãã«BlockIdãéä¿¡ããé åºã¯éèŠã§ãã
å¶éäºé ïŒ
- Blobã¯æå€§50,000ãããã¯ã«åå²ã§ããŸãã
- BLOBã«ã¯ãåžžã«100,000ã®æªç¢ºèªãããã¯ãå«ããããšãã§ããŸãã
- æªç¢ºèªã®ãããã¯ã®ã»ããã¯ããµã€ãºã400 GBãè¶ ããããšã¯ã§ããŸããã
- 1ã€ã®BLOBã®ãã¹ãŠã®BlockIdãããã¯ã¯åãé·ãã§ãªããã°ãªããŸããã ããããblock8ãblock9ãblock11ãšçãããªãç¶æ³ã¯åãå ¥ããããŸããã
- BlockIdã®æå€§é·ã¯64ãã€ãã§ãã
Gcs
GCSã®å Žåã倧ããªãã¡ã€ã«ããŸãšããŠããŠã³ããŒãããããšãã åéå¯èœãªã¢ããããŒã ããšåŒã³ãŸãã æåã«ã POSTãªããžã§ã¯ããåŒã³åºããŠããŒãããã»ã¹ãéå§ããããšãGCSã«äŒããå¿ èŠããããŸãã éåžžããã®é¢æ°ã¯HTMLãã©ãŒã ã䜿çšããŠãã¡ã€ã«ãã¢ããããŒãããããã«äœ¿çšãããŸããããã®å Žåããã¡ã€ã«ãå®çŸ©ããŸããã ããŠã³ããŒãããã»ã¹ãéå§ããããšãGCSã«äŒãããªã¯ãšã¹ãããããŒãå®çŸ©ã§ããŸãã ããŠã³ããŒããå®äºãããšãGCSã¯ãããŠã³ããŒãããã»ã¹ãäžæã«èå¥ããã¢ããããŒãIDãå«ãå¿çãè¿ããŸãã ãã®Idã¯ãããŒã¹ãããŒããããšãã«å¿ èŠã«ãªããããä¿åããå¿ èŠããããŸãã æ¬¡ã«ã Put Object颿°ã䜿çšããŠãã¡ã€ã«ãããŠã³ããŒãããUpload Idãšãªããžã§ã¯ãã®ã³ã³ãã³ããæž¡ããŠã¿ãå¿ èŠããããŸãã ãã¹ãŠãããŸããã£ãå ŽåãGCSã¯200 Okã®HTTPã³ãŒãã§å¿çããŸãããæäœã倱æããå ŽåãããŠã³ããŒããããã€ãæ°ãGCSã«åãåãããå¿ èŠããããŸãã GCSã¯ã308 Resume Incomplete HTTPã³ãŒããè¿ããŸãã ããã«ãPut Objectã䜿çšããŠããŒã¿ã®ããŒããç¶è¡ã§ããŸãã
èãïŒ
- 200 OKã³ãŒããååŸããããšãæåŸ ããŠããã¡ã€ã«å šäœãããŒãããããšããŠãã颿°ã®ãªããžã§ã¯ããè¿ãæåã®åŒã³åºããåãé€ãããšãã§ãããšæããŸãã 100 MBã®ãã¡ã€ã«ãããŠã³ããŒãããããšããŠããäžåºŠã«ããŒããããªãããšã¯ééããããŸããã ãã¡ã€ã«å šäœãããŠã³ããŒãããããšãã代ããã«ãæåã®2ã€ã®ã¹ããããã¹ãããããŠããã®ãã¡ã€ã«ã®äžéšãããŠã³ããŒããããã®ã¹ããŒã¿ã¹ãååŸããŠãããªããŒãããããæ¬¡ã®éšåãããŠã³ããŒãã§ããŸãã
- ããŒãããããã€ãæ°ãèŠæ±ãããšãã«GCSãRangeããããŒãè¿ããšãã«ãGCSã§ãã£ã³ã¯ã䞊åã«ããŒãããæ¹æ³ãããããªãã WABSã«ã¯BlockIdããããAS3ã«ã¯éšåçªå·ãããã䞊åèªã¿èŸŒã¿ã¿ã¹ã¯ã容æã«ããŸãã
BLOBãšãªããžã§ã¯ããããŠã³ããŒããã
ããããšãªããžã§ã¯ããããŠã³ããŒãããæ¹æ³ãèŠãŠã¿ãŸãããã ããã«ã¯2ã€ã®ã¡ã«ããºã ããããŸãã1ã€ã®èŠæ±ã§blobãŸãã¯ãªããžã§ã¯ãå šäœãããŠã³ããŒãããããåå²ããŠããŠã³ããŒãããŸãã
åã·ã¹ãã ã«ã¯ãWABSã§BlobãååŸã ãGCSã§ObjectãååŸããããŠã³ããŒãæ©èœã1ã€ã ããããŸãã
1åã®ãªã¯ãšã¹ãã§ããŠã³ããŒã
ããŒã¿ãå°ãããæ¥ç¶é床ãè¯ãå Žåã¯ãWABSã®Get BlobãšGCSã®GET Objectã䜿çšããŠãªããžã§ã¯ããå®å šã«ããŠã³ããŒãã§ããŸãã
åå²ããŠããŠã³ããŒããã
ãªããžã§ã¯ãã倧ãããäžåºŠã«ããŠã³ããŒãã§ãããã©ããããããªãå Žåã¯ãåãæ©èœã䜿çšããŠãRangeããããŒã远å ããããŠã³ããŒãã«å¿ èŠãªãã€ãç¯å²ã決å®ããŠãããŒã¹ãããŠã³ããŒãã§ããŸãã
ããŠã³ããŒãããã»ã¹ïŒ
- ãªããžã§ã¯ãã®ãµã€ãºã決å®ããŸãã ããšãã°ã100 MBã®ãéããããããŸãã
- ããŒã¹ã®ãµã€ãºã決å®ããŸãã ããšãã°ã1 MBã®ããŒã¹ãããŠã³ããŒããããšäŸ¿å©ã§ãã
- Get BlobãŸãã¯Get ObjectãåŒã³åºãã察å¿ããå€ãRangeããããŒã«æž¡ããŸãã é£ç¶ããŠããŠã³ããŒãããå Žåãæåã®ãªã¯ãšã¹ãã«ã¯ãã®ããããŒã®å€ã0-1048575ãïŒ0-1 MbïŒã2çªç®ã®ãªã¯ãšã¹ã-ã1048576-2097151ãïŒ1-2 MbïŒãªã©ãå«ãŸããŸãã
- ããŠã³ããŒãããããäœåãã©ããã«çœ®ããŸãã
- ãã¹ãŠã®ããŒã¹ãããŠã³ããŒãããåŸã空ã®100 MBãã¡ã€ã«ãäœæãããã®ãã¡ã€ã«ã«ããŠã³ããŒãããããŒã¹ãå ¥åããŸãã
WABSãAS3ãGCSã®å ±éç¹
3ã€ã®ã·ã¹ãã ãã¹ãŠã«å ±éã®ãã€ã³ãããããŸããããšãã°ã次ã®ãšããã§ãã
- 3ã€ã®ã·ã¹ãã ã¯ãã¹ãŠã2ã¬ãã«ã®éå±€ãæã€ã¯ã©ãŠãããŒã¹ã®ãã¡ã€ã«ã·ã¹ãã ã§ãã
- 3ã€ã®ã·ã¹ãã ã¯ãã¹ãŠã倧éã®ããŒã¿ãé·æéãå®äŸ¡ã«ä¿åã§ããŸãã
- 3ã€ã®ã·ã¹ãã ã¯ãã¹ãŠ2ã¬ãã«ã®éå±€ãæäŸããŸãïŒAS3 / GCSã®ãã¹ã±ãã/ãªããžã§ã¯ããšWABSã®BLOBã³ã³ãããŒ/ BLOBïŒã
- 3ã€ã®ã·ã¹ãã ã¯ãã¹ãŠãç¬èªã®ãµãŒãã¹ãšå¯Ÿè©±ããããã®RESTfulã€ã³ã¿ãŒãã§ã€ã¹ãšãéåžžã¯RESTã©ãããŒã§ããé«ã¬ãã«èšèªã®ã©ã€ãã©ãªãæäŸããŸãã
AS3ãšå ±é
GCSã«ã€ããŠæåã«èªãã ãšããGCSãšAS3ã«ã¯å€ãã®å ±éç¹ãããããšãããããŸãããããšãã°ïŒ
- 1ã€ã®çšèªïŒäž¡æ¹ã®ã·ã¹ãã ã¯ããã¹ã±ããããªããžã§ã¯ãïŒWABSã§ã¯blobã³ã³ãããŒããã³blobãšåŒã°ããŸãïŒãªã©ã®é¡äŒŒã®çšèªã䜿çšããŸãã
- åãæäœåïŒäž¡æ¹ã®ã·ã¹ãã ãåãæäœåã䜿çšããŸãã ããšãã°ããã¹ã±ããã®ãªã¹ããè¿ãAPIã®é¢æ°ã¯ãäž¡æ¹ã®ã·ã¹ãã ã§GETãµãŒãã¹ãšåŒã°ããŸãã
- åãäŸ¡æ Œæ§é ïŒäž¡æ¹ã®ã·ã¹ãã ã®äŸ¡æ Œæ§é ã¯äŒŒãŠããŸãã WABSã§ã¯ããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯åãã§ãããAS3ãšGCSã«ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã³ã¹ãããããŸãããå®è¡ãããæäœã«ãã£ãŠç°ãªããŸãã
- 1ã€ã®ãã¹ãã£ã³ã°ã¹ã¿ã€ã«ïŒ äž¡æ¹ã®ã·ã¹ãã ã virtual-hosted-styleïŒäŸïŒhttp://mybucket.s3.amazon.com/myobject ïŒããã³path-styleïŒäŸïŒhttpïŒ//s3-eu-west-1.amazonawsããµããŒãããŠããŸãã com / mybucket / myobject ïŒãWABSã¯ãã¹ã¹ã¿ã€ã«ã®ã¿ããµããŒãããŸãïŒäŸïŒhttp: //myaccount.blob.core.windows.net/myblobcontainer/myblobïŒã
- é¡äŒŒã®äžè²«æ§ã¢ãã«ïŒäž¡æ¹ã®ã·ã¹ãã ãé¡äŒŒã®äžè²«æ§ã¢ãã«ãæäŸããŸãã ããšãã°ãäž¡æ¹ã®ã·ã¹ãã ã¯ããã¹ãŠã®PUTèŠæ±ã«å¯ŸããŠåŒ·åãªèªã¿åãåŸæžã蟌ã¿å ç¢æ§ã¢ãã«ãæäŸããæçµçã«ã¯ãã¹ãŠã®ãªã¹ãïŒGETïŒæäœã«å¯ŸããŠå ç¢ãªå®å®æ§ãæäŸããŸãã
GCSã®ãŠããŒã¯ãªç¬é
GCSã®åºæ¬çãªæ©èœã«ã€ããŠèª¬æãå§ãããšããGCSã¯WABSãAS3ãããæ©èœãå°ãªãããã«èŠããŸãããGCSã«ã¯ä»ã®ãã©ãããã©ãŒã ã«ã¯ãªãæ©èœããããŸãã äŸïŒ
- OAuth 2.0èªèšŒ ïŒããã¯ããŠãŒã¶ãŒããã³ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ã«ã¢ã¯ã»ã¹ããå¿ èŠãããå Žåã«ãŠãŒã¶ãŒãšã¢ããªã±ãŒã·ã§ã³ã®è³æ Œæ å ±ãæäŸããå¿ èŠæ§ãæé€ããããŠããŒã¯ã§ææ°ã®æ©èœã§ãã 詳现ã«ã€ããŠã¯ã httpsïŒ//developers.google.com/storage/docs/authentication#oauthãã芧ãã ãã ã
- CookieããŒã¹ã®èªèšŒ ïŒGCSã§ã¯ãèªèšŒããããã©ãŠã¶ãŒãªã¯ãšã¹ããè¡ãããšãã§ããŸãïŒGCSã¢ã«ãŠã³ããæã£ãŠããªããŠãŒã¶ãŒåãïŒã ãããè¡ãã«ã¯ãACLãæ§æãããŠãŒã¶ãŒã«ãªããžã§ã¯ãã®URLãæäŸããŸãã 詳现ã«ã€ããŠã¯ã httpsïŒ//developers.google.com/storage/docs/authentication#cookieauthãã芧ãã ãã ã
- ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ã·ã§ã¢ãªã³ã°ïŒCORSïŒ ïŒGCSã§ã®ã¿å©çšå¯èœãªãã1ã€ã®ãŠããŒã¯ã§ææ°ã®æ©èœã W3Cã«ãã£ãŠéçºãããCORS仿§ã¯ãç°ãªãçæå ããã®ãªãœãŒã¹éã®çžäºäœçšãé²ãããã«ã¯ã©ã€ã¢ã³ãåŽã¢ããªã±ãŒã·ã§ã³ã«é©çšãããããªã·ãŒã§ãïŒ åäžçæå ããªã·ãŒã®å®è£ ïŒã ãã ãããã®æ©èœã¯å±éºãªåäœã ãã§ãªããæåãªèµ·æºéã®éåžžã«æçšã§åæ³çãªçžäºäœçšãé²ããŸãã GCSã¯ãCORSæºæ ã®å¿çãè¿ãããã«ãã¹ã±ãããæ§æã§ããããã«ããããšã§ããã®ä»æ§ããµããŒãããŠããŸãã 詳现ã«ã€ããŠã¯ã httpsïŒ//developers.google.com/storage/docs/cross-originãã芧ãã ãã ã ãã®é¢æ°ã¯ãå®éšã段éïŒã€ãŸããããŒã¿æ®µéïŒã«ããããšã«æ³šæããŠãã ããã 100ïŒ ç¢ºä¿¡ã¯ãããŸããããWABSã®$ root blobã³ã³ãããŒã䜿çšããŠãåãããšãå®çŸã§ããããã§ãã
äŸ¡æ Œ
äž¡æ¹ã®ã·ã¹ãã ã䜿çšããå Žåããè³æ¬ãã³ã¹ãã¯ãããŸããã äŸ¡æ Œèšå®ã¢ãã«ã¯æ¯èŒçåçŽã§ãæ¶è²»ã«åºã¥ããŠããŸãã ã©ã¡ãã®ã·ã¹ãã ã§ããè«æ±æžã¯äœ¿çšéã«åºã¥ããŠè«æ±ããã3ã€ã®ã³ã³ããŒãã³ãã§æ§æãããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ã®æ° ïŒæ¯æã¯ãè¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ°ã«åŸã£ãŠè¡ãããŸã-倧ãŸãã«èšã£ãŠã1ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ã·ã¹ãã å ã®1ã€ã®é¢æ°åŒã³åºãã§ãã 2ã€ã®ã·ã¹ãã ã«ã¯å€§ããªéãããããŸã-WABSã§ã¯ ããã©ã³ã¶ã¯ã·ã§ã³ã³ã¹ãã¯åºå®ïŒ 10,000ãã©ã³ã¶ã¯ã·ã§ã³ ããã0.01ãã«ïŒã§ã ãGCSã§ã¯ ããã©ã³ã¶ã¯ã·ã§ã³ ã®ã¿ã€ãã«ãã£ãŠç°ãªããŸãã PUTãCOPYãPOSTãLISTã®åæäœãå®è¡ããå Žåããã©ã³ã¶ã¯ã·ã§ã³ããšã«é«ãäŸ¡æ ŒïŒ1000ãã©ã³ã¶ã¯ã·ã§ã³ããã0.01ãã«ïŒãæ¯æããGETãªã©ã§ã¯äœãäŸ¡æ ŒïŒ10,000ãã©ã³ã¶ã¯ã·ã§ã³ããã0.01ãã«ïŒãæ¯æããŸãã åé€ãªã¯ãšã¹ãã¯æžãããŠããŸããããGCSã§ã¯ç¡æã§ãããšæ³å®ããŠããŸãã
- ã¹ãã¬ãŒãž ïŒåã·ã¹ãã ã«ä¿åãããŠããããŒã¿ã®éã«å¯ŸããŠæ¯æããŸãã
- ãã©ãã£ã㯠ïŒã·ã¹ãã ãšã®éã§è»¢éãããããŒã¿ã®éã«å¯ŸããŠæ¯æããŸãã å·çæç¹ã§ã¯ãäž¡æ¹ã®ã·ã¹ãã ãç¡æã®çä¿¡ãã©ãã£ãã¯ãæäŸããŠããŸãã ããŒã¿è»¢éã®è²»çšãGCSã®åãããŒã¿ã»ã³ã¿ãŒå ã§æ¯æããããã©ããã¯èšåãããŠããŸããã
ç¹å¥ãªäŸ¡æ Œèšå®ã¢ãã«ãå©çšã§ããäž¡æ¹ã®ã·ã¹ãã ãç°ãªãæ¯æãããã±ãŒãžãæäŸããŸãã äŸ¡æ Œã®è©³çް-https : //www.windowsazure.com/en-us/pricing/details/ïŒWABSã®å ŽåïŒããã³https://developers.google.com/storage/docs/pricingandtermsïŒGCSã®å ŽåïŒã
æ©èœ
ãã®è¡šã¯ãWABSããã³GCSãæäŸããæ©èœããŸãšãããã®ã§ãã äž¡æ¹ã®ã·ã¹ãã ã§ãµããŒããããŠããæ©èœã®ã¿ãå«ãŸããŠããŸãã
次ã®è¡šã«ãWABSã§ã®ã¿ãµããŒããããæ©èœã瀺ããŸãã
ãããã®é¢æ°ãããã«è©³ããèããŠã¿ãŸãããã
ç¶¿æ£
| Gcs
| |
ã³ã³ããã®äœæ/ãã±ããã®é
眮
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãæ°ããBLOBã³ã³ãããŒãŸãã¯ãã¹ã±ãããäœæããŸãã
çæãã¹ãéèŠãªç¹ã¯ãBLOBã³ã³ãããŒã¯ã¹ãã¬ãŒãžã¢ã«ãŠã³ãã«éå®ãããGCSãã¹ã±ããã¯GCSãããžã§ã¯ãã«éå®ãããããšã§ãã WABSã¹ãã¬ãŒãžã¢ã«ãŠã³ããäœæãããšãããã®å ŽæïŒããŒã¿ã»ã³ã¿ãŒïŒã決å®ãããããã³ã³ãããŒã¯ç¹å®ã®å°ççå Žæã®ç¹å®ã®ããŒã¿ã»ã³ã¿ãŒã«é 眮ãããŸãã GCSã§ãã¹ã±ãããäœæãããšãã«ããã®ãã¹ã±ãããäœæããå°åãæ±ºå®ãããããå¿ èŠã«å¿ããŠãGCSã®ãã¹ãŠã®ããŒã¿ã»ã³ã¿ãŒã«ãã¹ã±ãããé åžã§ããŸãã WABSã§åãããšãè¡ãã«ã¯ãã³ã³ãããé 眮ããããŒã¿ã»ã³ã¿ãŒããšã«ã¹ãã¬ãŒãžã¢ã«ãŠã³ããäœæããå¿ èŠããããŸãã
BLOBã³ã³ãããŒãšãã¹ã±ããã«ã¯ããã€ãã®åœåèŠåãããããããã¯äžã®è¡šã«ãŸãšããããŠããŸãã
ç¶¿æ£
| Gcs
| |
æå°/æå€§é·ã®ã¿ã€ãã«
| 3/63
| 3/63
|
倧æåãšå°æåã®åºå¥
| å°æå
| å°æå
|
èš±å¯ããããã£ã©ã¯ã¿ãŒ
| è±æ°åãšãã€ãã³ïŒ-ïŒ
| è±æ°åããã€ãã³ïŒ-ïŒãããã³ããªãªãïŒãïŒ
|
ãã®ä»ã®åœåèŠåïŒ
- blobã³ã³ãããŒã®ååã¯ããã€ãã³ã§ã¯ãªããæåãŸãã¯æ°åã§å§ãŸãå¿ èŠããããŸããäžæ¹ããã€ãã³ã®åŸãæåãŸãã¯æ°åã¯åã³ç§»åããå¿ èŠããããè€æ°ã®é£ç¶ãããã€ãã³ã¯èš±å¯ãããŸããã
- GCSãã¹ã±ããåã¯ããããã§åºåãããã©ãã«ã§æ§æãããŠããå¿ èŠããããŸããåã©ãã«ã®å é ãšæ«å°Ÿã¯å°æåãŸãã¯æ°åã§ããå¿ èŠãããããã¹ã±ããåã¯IPã¢ãã¬ã¹ïŒ127.0.0.1ãªã©ïŒã®ããã«ã¯èŠããŸããã
- ãã¹ã±ããã®ååã«ã¯3ã63æåãå«ããããšãã§ããŸãããååã«ããããå«ãŸããå Žåããã¹ã±ããã®ååã¯ãã€ã³ãæ°ãèæ ®ããŠæå€§222æåã«ããããšãã§ããŸãã
- ãã¹ã±ããåãgoogãã¬ãã£ãã¯ã¹ã§å§ããããšã¯ã§ããŸããã
泚ïŒ
- ã³ã³ãããŸãã¯ãã¹ã±ãããäœæãããšãã«ãACLïŒãªãã·ã§ã³ïŒãæå®ã§ããŸããæå®ããªãå Žåãã³ã³ãããŸãã¯ãã¹ã±ããã¯ãã©ã€ããŒãã«ãªããŸããã€ãŸããææè ã®ã¿ã䜿çšã§ããŸãã GCSã§ã¯ãäœæäžã«ACLãå®çŸ©ããããšã¯ã§ããŸãã-äœæäžã«ã·ã¹ãã ããã©ã«ãACLã䜿çšãããŸãã 詳现ã«ã€ããŠã¯ã httpsïŒ//developers.google.com/storage/docs/accesscontrol#defaultãã芧ãã ãã ã ãã¹ã±ãããäœæããåŸãACLã倿ŽããããCORSããã¹ã±ããã«é©çšã§ããŸãã
- WABSã§ã¯ãã³ã³ããã®ç¬èªã®ã¡ã¿ããŒã¿ãå®çŸ©ã§ããŸããããã¯ãããŒãšå€ã®ã³ã¬ã¯ã·ã§ã³ã§ãããæå€§ãµã€ãºã¯8 KBã§ãã GCSã§ã¯ãããã¯å©çšã§ããŸããã
ç¶¿æ£
| Gcs
| |
ã³ã³ããã®ãªã¹ã/ GETãµãŒãã¹
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãGCSã§èªèšŒãããææè ã«å±ãããã¹ãŠã®BLOBã³ã³ãããŒãŸãã¯ãã¹ã±ããã®ãªã¹ããè¿ããŸãã
ã³ã¡ã³ãïŒ
- WABSã§ãã®é¢æ°ã1ååŒã³åºããšãæå€§5000ã®ã³ã³ãããŒãè¿ãããŸã;ã¹ãã¬ãŒãžã¢ã«ãŠã³ãã«ããã«ã³ã³ãããŒãããå Žåã¯ãç¶ç¶ããŒã¯ã³ãè¿ãããŸãã ããã©ã«ãã§ã¯ãWABSã¯æå€§5000åã®ã³ã³ãããŒãè¿ããŸãããããå°ããæ°ãæå®ã§ããŸãã GCSã§ã¯ãã®éé¡ã«ã€ããŠèšåããŠããŸããã
- WABSã§ã¯ãéžæã«è©²åœããã³ã³ããã®ååã§å§ãŸããã¬ãã£ãã¯ã¹ã䜿çšããŠããµãŒããŒåŽã®ãã£ã«ã¿ãªã³ã°ãå®è¡ã§ããŸãã
- WABSã§ã¯ããªã¹ããšãšãã«blobã³ã³ãããŒã®ã¡ã¿ããŒã¿ãè¿ããã©ãããæå®ã§ããŸãã
ç¶¿æ£
| Gcs
| |
ã³ã³ããã®åé€/ãã±ããã®åé€
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ããããã³ã³ãããŒãŸãã¯ãã¹ã±ãããåé€ããŸãã
ã³ã¡ã³ãïŒ
- ãã®æäœã¯åæã®ããã«èŠãããããããŸããããå®éã«ã¯ããã§ã¯ãããŸããã BLOBã³ã³ãããŒãåé€ããèŠæ±ãéä¿¡ãããšãåé€ã®ããŒã¯ãä»ããããã¢ã¯ã»ã¹ã§ããªããªããŸãããã®åŸãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã»ã¹äžã«åé€ããããããã³ã³ãããŒãåé€ããå®éã®æéã¯ããã®ã³ã³ãããŒå ã®ããŒã¿ã®ãµã€ãºã«ãã£ãŠç°ãªããŸãã ç§ã®çµéšã§ã¯ãéåžžã«å€§ããªã³ã³ããã®åé€ã«ã¯æ°æéãããå Žåãããããã®æç¹ã§åãååã®ã³ã³ãããäœæããããšãããšãšã©ãŒãçºçããŸãïŒç«¶åãšã©ãŒ-HTTP 409ïŒã ãã®ç¹ã§ããã®æç¹ã§äœããã¹ãããèšç»ããå¿ èŠããããŸãã
- GCSã§ã¯ããã¿ç®± ã¯ç©ºã«ããŠããåé€ããå¿ èŠããããŸãã ãŸãããã¹ã±ãããããã¹ãŠã®ãªããžã§ã¯ããåé€ããŠããããããåé€ããå¿ èŠããããŸãã ãã以å€ã®å Žåã409 Conflict ãšã©ãŒãè¿ãã ãŸãã
ç¶¿æ£
| Gcs
| |
ãªã¹ãBLOB / GETãã±ããïŒãªã¹ããªããžã§ã¯ãïŒ
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãã³ã³ãããŸãã¯ãã¹ã±ããå ã®ããããšãªããžã§ã¯ãã®ãªã¹ããååŸããããã«äœ¿çšãããŸãã ã·ã¹ãã å ã®é¢æ°ã¯ã次ã®å Žåã«åãããšãè¡ããŸãã
- äž¡æ¹ã®æ©èœã«ãããçµæã®éžæãç®çã®ãªããžã§ã¯ãæ°ã«å¶éã§ããŸãã
- äž¡æ¹ã®é¢æ°ã«ã¯ã1åã®é¢æ°åŒã³åºãã§è¿ãããšãã§ãããªããžã§ã¯ãã®æå€§æ°ããããŸã-WABSã§ã¯5000ãGCSã§ã¯1000ã§ãã
- ã©ã¡ãã®é¢æ°ãã»ãã¬ãŒã¿ãŒããµããŒãããŠããŸãã ã»ãã¬ãŒã¿ãŒã¯ãããããŸãã¯ãªããžã§ã¯ããã°ã«ãŒãåããã·ã³ãã«ã§ãã æãäžè¬çã«äœ¿çšãããåºåãæåã¯/ã§ãã åè¿°ã®ããã«ãäž¡æ¹ã®ã·ã¹ãã ã¯2ã¬ãã«ã®éå±€ããµããŒãããŠãããã»ãã¬ãŒã¿ãŒã䜿çšãããšããã©ã«ããŒã¿ã€ãéå±€ã®é¯èŠãäœæã§ããŸãã ããšãã°ã次ã®ãªããžã§ã¯ãããããŸãïŒimages / a.pngãimages / b.pngãimages / c.pngãlogs / 1.txtãlogs / 2.txtãfiles.txtã 颿°ãåŒã³åºããŠåºåãæå/ãæž¡ãå Žåãäž¡æ¹ã®ã·ã¹ãã ãæ¬¡ã®å€ãè¿ããŸãïŒimagesãlogsãfiles.txtã
- ã©ã¡ãã®æ©èœãããã¬ãã£ãã¯ã¹ã䜿çšãããµãŒããŒåŽã®ãã£ã«ã¿ãªã³ã°ããµããŒãããŠããŸãã ãªã¯ãšã¹ãã«ãã¬ãã£ãã¯ã¹ãå«ãŸããå Žåãäž¡æ¹ã®ã·ã¹ãã ã¯ããã®ãã¬ãã£ãã¯ã¹ã§å§ãŸãååãæã€ãªããžã§ã¯ããè¿ããŸãã äžèšã®äŸã䜿çšããŠãã»ãã¬ãŒã¿ãªãã§æ¥é èŸãimagesããæž¡ããšãäž¡æ¹ã®ã·ã¹ãã ã¯æ¬¡ã®å€ãè¿ããŸãïŒimages / a.pngãimages / b.pngãimages / c.pngã
- äž¡æ¹ã®é¢æ°ã¯ãå®éã«ã¯ç¶ç¶ããŒã¯ã³ã§ããããŒã«ãŒã䜿çšã§ãããã®ããŒã«ãŒã§å§ãŸããªããžã§ã¯ãã®ãªã¹ãã®åä¿¡ãéå§ããå¿ èŠãããããšãäž¡æ¹ã®ã·ã¹ãã ã«ç€ºãããã«äœ¿çšãããŸãã
- äž¡æ¹ã®ã·ã¹ãã ã¯ãã¢ã«ãã¡ãããé ã«ãªããžã§ã¯ããè¿ããŸãã
éãïŒ
- WABSã®1ã€ã®é¢æ°åŒã³åºãã¯ãæå€§5000ã®BLOBãGCS-1000ãªããžã§ã¯ããè¿ããŸãã
- ãªã¹ããåãåã£ããããããã®ã¹ãããã·ã§ãããè¿ãå¿ èŠãããããšãWABSã«ç€ºãããšãã§ããŸãã GCSã¯ãããè¡ãããšãã§ããŸããã
- ãªã¹ããåãåã£ããããããã«å¯ŸããŠã¡ã¿ããŒã¿ãè¿ãå¿ èŠãããããšãWABSã«ç€ºãããšãã§ããŸãã GCSã§ã¯ããªããžã§ã¯ãã®ã¡ã¿ããŒã¿ã¯è¿ãããŸãã-ããã«ã¯HEADãªããžã§ã¯ãã䜿çšããå¿ èŠããããŸãã
- ãªã¹ããåãåã£ããããŸã 確èªãããŠããªãïŒã³ããããããŠããªãïŒBLOBã®ãªã¹ããè¿ãå¿ èŠãããããšãWABSã«ç€ºãããšãã§ããŸãã éšåçã«ããŒãããããšãGCSã¯ãã§ã«å®å šã«ããŒããããŠãããªããžã§ã¯ãã®ã¿ãè¿ãããšãã§ããŸãã
- ãã®é¢æ°ã䜿çšããŠããã±ããã®ACLãŸãã¯CORSèšå®ãååŸã§ããŸãã
ç¶¿æ£
| Gcs
| |
ã³ã³ããACL / PUTãã±ããã®èšå®ïŒACLãŸãã¯CORSïŒ
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãã³ã³ãããŸãã¯ãã¹ã±ããã®ACLãæå®ããããã«äœ¿çšãããWABSã§1ã€ä»¥äžã®ã¢ã¯ã»ã¹ããªã·ãŒãæå®ããããšãã§ããŸãã CORSã¯GCSã§ãèšå®ã§ããŸãïŒãã ããCORSãšACLã¯åããªã¯ãšã¹ãã§èšå®ã§ããŸããïŒã
BLOBã³ã³ãããŒã®å ŽåãACLå€ã¯æ¬¡ã®ããã«ãªããŸãã
ãã¹ã±ããã®å ŽåãACLã¯æ¬¡ã®ãã®ãšçãããªããŸãã
- èªã¿åã ïŒãã¹ã±ããå ã®ãªããžã§ã¯ãã®ãªã¹ããååŸã§ããŸãã
- WRITE : , .
- FULL _ CONTROL : READ, WRITE.
GCSã§äŸ¿å©ãªã®ã¯ããŠãŒã¶ãŒã«ç°ãªãã¢ã¯ã»ã¹èš±å¯ã»ãããäžããããšãã§ããããšã§ããããšãã°ãuser1ã«ã¯READ ACLããuser2ã«ã¯WRITE ACLããWABSã«ã¯ãã®ãããªæè»æ§ã¯ãªããã¢ã¯ã»ã¹èš±å¯ã¯blobã³ã³ãããŒã«ã®ã¿èšå®ãããŸãã
WABSã®äŸ¿å©ãªç¹ã¯ãACLã«å ããŠããã®ã³ã³ããã®äžæçãªèš±å¯ã»ãããå®çŸ©ããã³ã³ããã«å¯ŸããŠæå€§5ã€ã®ã¢ã¯ã»ã¹ããªã·ãŒãèšå®ã§ããããšã§ããããšãã°ããããã³ã³ããã«å¯ŸããæžãèŸŒã¿æš©éãæã€ã¢ã¯ã»ã¹ããªã·ãŒãäœæã§ããŸããããã¯1æ¥ã®ã¿æå¹ã§ããããªã·ãŒã䜿çšãããšã眲åä»ãã®ç¹å¥ãªURLãçæããŠãŠãŒã¶ãŒã«æäŸã§ããŸãïŒæè»ãªå ±æã¢ã¯ã»ã¹çœ²åæ©èœïŒã眲åã䜿çšãããšãäžå®ã®æéããã詳现ãªã¬ãã«ã§ã³ã³ããããã³BLOBã«ã¢ã¯ã»ã¹æš©ãçºè¡ã§ããŸãã
ç¶¿æ£
| Gcs
| |
ã³ã³ãããŒACLã®ååŸ/ãã±ããã®ååŸïŒACLãŸãã¯CORSïŒ
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãblobã³ã³ãããŒãŸãã¯ãã¹ã±ããã®ACLãååŸããããã«äœ¿çšãããŸããWABSã§ã¯ããã®é¢æ°ã¯ã³ã³ãããŒã«å®çŸ©ãããã¢ã¯ã»ã¹ããªã·ãŒãè¿ããŸãã
ãã¹ã±ããã®ACLãååŸããã«ã¯ãæååãã©ã¡ãŒã¿ãŒãaclãã§GET BucketãåŒã³åºããŠãæååãã©ã¡ãŒã¿ãŒãcorsãã§CORSãååŸããå¿ èŠããããŸããã©ã¡ããæå®ãããŠããªãå Žåããã¹ã±ããå ã®ãªããžã§ã¯ãã®ãªã¹ããè¿ãããŸãã
ç¶¿æ£
| Gcs
| |
Blob / PUTãªããžã§ã¯ããé
眮
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ããããããããã³ã³ãããŒã«ããªããžã§ã¯ãããã¹ã±ããã«è¿œå ããŸãã ãã®é¢æ°ã䜿çšããŠãGCSã®æ¢åã®ãªããžã§ã¯ãã«ACLãæå®ãããããããã¹ã±ããããå¥ã®ãã¹ã±ããã«ãªããžã§ã¯ããã³ããŒãããã§ããŸãã
ã³ã¡ã³ãïŒ
- äž¡æ¹ã®ã·ã¹ãã ã§ã颿°ã¯æ¢åã®ãªããžã§ã¯ããæå®ãããååã§äžæžãããŸãã
- ã©ã¡ãã®ã·ã¹ãã ã§ãããªããžã§ã¯ãã®ããããã£ïŒãã£ãã·ã¥ã³ã³ãããŒã«ãã³ã³ãã³ãã¿ã€ããªã©ïŒãå®çŸ©ã§ããŸãã
- ã©ã¡ãã®ã·ã¹ãã ã§ããMD5ã³ã³ãã³ãã®ããã·ã¥ãéä¿¡ããŠããŒã¿ã®äžè²«æ§ã確èªã§ããŸãã
- GCSã§ã¯ããªããžã§ã¯ããäœæãããšãã«ããªããžã§ã¯ãã«ACLãèšå®ã§ããŸãããWABSã§ã¯ã§ããŸããã
- ã©ã¡ãã®ã·ã¹ãã ã§ããããŒãšå€ã®ãã¢ã®ã³ã¬ã¯ã·ã§ã³ã®åœ¢åŒã§ãããããšãªããžã§ã¯ãã®ã¡ã¿ããŒã¿ãæå®ã§ããŸããWABSã§ã¯ããã®ã¡ã¿ããŒã¿ã®æå€§ãµã€ãºã¯8 Kbã§ãããGCSã§ã¯äžæã§ãã
- , . Put Page.
- GCS .
- , , 64 . , Put Block Put Block List.
- WABSã§ã¯ããã®é¢æ°ãæ£åžžã«å®äºããããã«æºããå¿ èŠãããåææ¡ä»¶ã決å®ã§ããŸãïŒIf - Modified - SinceãIf - Unmodified - SinceãIf - MatchãIf - None - MatchïŒã
ç¶¿æ£
| Gcs
| |
POSTãªããžã§ã¯ã
| ãã
| ã¯ã
|
ãã®é¢æ°ã¯ãHTMLãã©ãŒã ã䜿çšããŠæå®ããããã¹ã±ããã«ãªããžã§ã¯ãã远å ããŸããPOSTã¯PUTã®ä»£æ¿ã§ããããã©ãŠã¶ããªããžã§ã¯ããããŒãã§ããããã«ããŸããHTTPããããŒã䜿çšããŠPUTã«æž¡ããããã©ã¡ãŒã¿ãŒã¯ãæå·åãããmultipart / form-dataã¡ãã»ãŒãžã®æ¬æãšããŠPOSTããæž¡ãããŸãã
ç¶¿æ£
| Gcs
| |
Get Blob / GET Object
| ã¯ã
| ã¯ã
|
ãã®æ©èœã«ãããã³ã³ãããŸãã¯ãã¹ã±ããããblobãããŠã³ããŒãã§ããŸãã
ã³ã¡ã³ãïŒ
- , Range.
- WABS .
- GCS ACL.
- , ( If - Modified - Since , If - Unmodified - Since , If - Match , If - None - Match ).
- â / .
ç¶¿æ£
| GCS
| |
Delete Blob/DELETE Object
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãBLOBãŸãã¯ãªããžã§ã¯ãããªããžããªããåé€ããŸãã
ã³ã¡ã³ãïŒ
- WABSã§ã¯ããã®æ©èœã䜿çšããŠããœãŒã¹ãåé€ããã«ã¹ãããã·ã§ããã®ã¿ãåé€ã§ããŸãããœãŒã¹ãåé€ããããšããã®ã¹ãããã·ã§ããããã¹ãŠåé€ãããŸãã
- ãã®é¢æ°ã¯ãç¹å®ã®BLOBããŒãžã§ã³ãåé€ããããã«äœ¿çšã§ããŸãããã®ããã«ã¯ãWABSã§BLOBã¹ãããã·ã§ããã®æ¥ä»/æå»ãæå®ããå¿ èŠããããŸãã
ã»WABSã§ã¯ããã®é¢æ°ãæ£åžžã«å®äºããããã«æºããå¿ èŠãããåææ¡ä»¶ã決å®ã§ããŸãïŒIf- Modified- SinceãIf- Unmodified- SinceãIf- MatchãIf- None- MatchïŒã
ç¶¿æ£
| Gcs
| |
Blobã®ã³ããŒ/ãªããžã§ã¯ãã®é
眮-ã³ããŒ
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãããããŸãã¯ãªããžã§ã¯ããå ã®å Žæããã©ããã«ã³ããŒããŸãã
ã³ã¡ã³ãïŒ
ã»äž¡æ¹ã®ã·ã¹ãã ã§ã¯ããã®æ©èœãæ£åžžã«å®äºããããã«æºããå¿ èŠã®ããåææ¡ä»¶ã決å®ã§ããŸãïŒIf- Modified- SinceãIf- Unmodified- SinceãIf- MatchãIf- None- MatchïŒããããã®æ¡ä»¶ã¯ãWABSã®ãœãŒã¹ãšæçµã³ããŒãããã³GCSã®ãœãŒã¹ã®äž¡æ¹ã§å®çŸ©ã§ããŸãã
ã»WABSã§ã¯ã1ã€ã®ã¹ãã¬ãŒãžã¢ã«ãŠã³ãå ã§ã®ã¿ãã³ã³ãããŒããã³ã³ãããŒã«ãªããžã§ã¯ããã³ããŒã§ããŸããGCSã«ã¯ãã®ãããªå¶éã¯ãããŸããã亀æãè¡ããããã¹ã±ãããåããããžã§ã¯ãã«å±ããŠããå Žåããªããžã§ã¯ããã³ããŒãããŸãããã ããAPIã䜿çšããŠãã£ã³ã¯ãããŒããããªããžã§ã¯ããäœæããå Žåããªããžã§ã¯ãããªãŒãžã§ã³éã§ã³ããŒããããšã¯ã§ããŸããã
ã»äž¡æ¹ã®ã·ã¹ãã ã§ã¯ãæ¢åã®ã¡ã¿ããŒã¿ãã³ããŒããããæçµã³ããŒã®ã¡ã¿ããŒã¿ãæå®ã§ããŸãã
- GCSã§ã¯ãã³ããŒæã«ç¹å®ã®ACLãåé€ãããããã©ã«ãã®ACLããªããžã§ã¯ãã«èšå®ãããŸããã«ã¹ã¿ã ACLã¯ãé©åãªãªã¯ãšã¹ãããããŒã䜿çšããŠã³ããŒããã»ã¹äžã«æ±ºå®ã§ããŸãã
ãã³ãïŒ
- äž¡æ¹ã®ã·ã¹ãã ã¯ããªããžã§ã¯ãã®åå倿ŽããµããŒãããŠããŸããããªããžã§ã¯ãã®ååã倿Žããã«ã¯ãæåã«ãªããžã§ã¯ããã³ããŒããŠããåé€ããŸãã
- BlobãŸãã¯ãªããžã§ã¯ãããŒãžã§ã³ããçŸåšã®ãããŒãžã§ã³ã«ãã¢ããã°ã¬ãŒããããããšãã§ããŸãããããè¡ãã«ã¯ãããŒãžã§ã³ç®¡çãããblobïŒã¹ãããã·ã§ãããæãïŒãŸãã¯ãªããžã§ã¯ãïŒããŒãžã§ã³IDãæãïŒãšæçµã³ããŒãããŒãžã§ã³ç®¡çãããŠããªãblobãŸãã¯ã³ããŒå ãšããŠæå®ããŸãã
ç¶¿æ£
| Gcs
| |
Blobããããã£ã®ååŸ/ HEADãªããžã§ã¯ã
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãblobããããã£ãšãªããžã§ã¯ãã¡ã¿ããŒã¿ãååŸããããã«äœ¿çšãããŸãããblobãŸãã¯ãªããžã§ã¯ãã®ã³ã³ãã³ãã¯è¿ããŸããã
ã³ã¡ã³ãïŒ
- WABSã§Blobããããã£ãååŸããGCSã§HEADãªããžã§ã¯ããååŸãããšãBLOBãŸãã¯ãªããžã§ã¯ãã®ãŠãŒã¶ãŒå®çŸ©ã®ã¡ã¿ããŒã¿ãæšæºHTTPããããã£ãããã³ã·ã¹ãã ããããã£ã®ã»ãããè¿ãããŸãã
- WABS , ( If - Modified - Since , If - Unmodified - Since , If - Match , If - None - Match ).
- . / . , .
- WABS, Get Blob Metadata.
ç¶¿æ£
| GCS
| |
Get Blob Metadata/HEAD Object
| ã¯ã
| ã¯ã
|
ãã®é¢æ°ã¯ãããããŸãã¯ãªããžã§ã¯ãã®ãŠãŒã¶ãŒå®çŸ©ã®ã¡ã¿ããŒã¿ãè¿ããŸãããã®é¢æ°ã䜿çšããŠãç¹å®ã®ããŒãžã§ã³ã®blobãŸãã¯ãªããžã§ã¯ãã®ããããã£ãååŸã§ããŸãããã®æ å ±ãååŸããã«ã¯ãWABSã§ã¹ãããã·ã§ããBLOBã®æ¥ä»/æå»ãæå®ããå¿ èŠããããŸãã
ãŸãšã
ãã®èšäºã§èŠãããã«ãäž¡æ¹ã®ã·ã¹ãã ã¯åæ§ã®æ©èœã»ãããæäŸããŸãããäžéšã®æ©èœã¯ããã·ã¹ãã ã«ååšããå¥ã®ã·ã¹ãã ã«ã¯ååšããŸãããããã«ãããããããæ©èœã®å€§ããªéãã«ã€ããŠè©±ãããšã¯ã§ããŸããã
翻蚳è ããã®ã¡ã¢
ãã®ã¬ãã¥ãŒãèªãã§ãGoogleãã©ãã¹ããæ§ç¯ããã®ã§ã¯ãªãåççã§æåããã¢ããŸã³ã®éãé²ãããšãåççã«æ±ºå®ãããšããæèŠ-ããã¯ããã€ãã®ãã©ã¡ãŒã¿ãŒã®ã»ãŒå®å šãªã¢ã€ãã³ãã£ãã£ã«ãã£ãŠèšŒæãããŸããAmazonã2006幎ã«ãµãŒãã¹ãéå§ãã2010幎ã«GoogleããµãŒãã¹ãéå§ããããšãèãããšãããã ã£ããããããŸããããã ããGoogleã«ã¯ä»ã®ãµãŒãã¹ã«ã¯ãªãåªããæ©èœãããã€ããããŸããããšãã°ãåãCORSã§ããäžè¬çã«ãäžæçãªã³ã³ããã¹ãã§ã®Googleããã³MicrosoftãµãŒãã¹ã®éçºã®ããŒã¹ã¯ãAmazonã®ããŒã¹ãããéããšèšãããšãã§ããŸãã
次ã®è³æãéçºããæ¬¡ç¬¬ãééããªã翻蚳ããããªãã®æ³šæãåŒãä»ããŸãã