AWS S3: как получить результат загрузки S3 - PullRequest
0 голосов
/ 09 октября 2018

Благодаря последнему совету , теперь мы можем проверить целостность загруженного файла S3 по значению хеша в нашем пакете;

:: Get the MD5 Hased Value of local target file
CALL %BAT_DIR%\GET_HASHVALUE_BASE64.bat

:: Upload File to S3 with MD5 Hash Value 
aws s3api put-object --bucket %S3_BUCKET% --key %S3_SEND_DIR%/%FILE_NAME% --body %SEND_FILE% --metadata md5chksum=%HashBase64% --content-md5 %HashBase64%

-- Hash was matched between the local and uploaded S3 file, "Etag" was returned
{ 
    "ETag": "\"63df79d4c782a0df2186dda1c601931c\"" 
} 

Если мы можем определить успешность загрузки S3 с помощьюВозвращение «Etag», мы хотели бы получить его для обнаружения сбоев в нашей партии.

Пока что это не работает, как мои ожидания, хотя ...

:: trial example
set S3_COMMAND_STR=aws s3api put-object --bucket %S3_BUCKET% --key %S3_SEND_DIR%/%FILE_NAME% --body %SEND_FILE% --metadata md5chksum=%HashBase64% --content-md5 %HashBase64%

:: Uploaded Result Get
for /F %%A in ('%S3_COMMAND_STR%') do (set S3_RESULT=%%A) 

-- Return Command Error
File aws was not found.

ВыЕсли вы знаете какой-нибудь более умный способ обнаружения сбоев при загрузке S3, любой совет был бы вам снова признателен.

Большое вам спасибо.

К вашему сведению.Возможно, мы попробуем 'S3 select' позже, но теперь мы проверяем самый простой способ

1 Ответ

0 голосов
/ 09 октября 2018

Благодаря Squashman мы теперь можем обнаружить любую ошибку загрузки s3 по коду ошибки.

Так как все ошибки загрузки возвращают '255', включают в себя ошибку хэш-несоответствия и ошибку имени backet, а также другие, пока мы установилиэто каждый этап, чтобы мы могли легко узнать, что может быть основной причиной ошибки загрузки, насколько это возможно.

:: S3 Bucket Tag Create
aws s3api put-object --bucket %S3_BUCKET% --key %S3_SEND_DIR%/

:: Captuer Error ==> pre-uploading check. Backet name or anything else can be wrong
if %Errorlevel% neq 0 goto ERR_S3_BACKET

:: GetHash Value (Convert from Hex to Base64)
for /f "usebackq delims=" %%h in (`CertUtil -hashfile "%SEND_FILE%" MD5 ^| find /v ":"`) do set HashHex=%%h
for /f "usebackq delims=" %%h in (`cscript //nologo HexToBase64.vbs %HashHex%`) do set HashBase64=%%h

:: Failuer to get Hash Value
if not defined HashBase64 goto ERR_GET_HASH

:: s3 File Upload and captuer error codes 
aws s3api put-object --bucket %S3_BUCKET% --key %S3_SEND_DIR%/%FILE_NAME% --body %SEND_FILE% --metadata md5chksum=%HashBase64% --content-md5 %HashBase64% 
if %Errorlevel% neq 0 goto ERR_S3_UPLOAD

Если кто-то также знает, как получить подробности об ошибке или более разумный способ.Буду очень признателен за дополнительную информацию или совет.

Большое спасибо.

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