Я хотел бы опубликовать ХИТ об изображении, которое я должен mturk. Я хочу сделать это программно, поэтому я использую функцию create_hit, предоставленную mturk. Изображение сначала загружается в корзину Amazon S3, и я указал его в XML-файле следующим образом:
<HTMLQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2011-11-11/HTMLQuestion.xsd">
<HTMLContent><![CDATA[
<!-- YOUR HTML BEGINS -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
<script type='text/javascript' src='https://s3.amazonaws.com/mturk-public/externalHIT_v1.js'></script>
<!-- Bootstrap v3.0.3 -->
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.142.0.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://s3.amazonaws.com/mturk-public/bs30/css/bootstrap.min.css" rel="stylesheet" />
<section class="container" id="Other" style="margin-bottom:15px; padding: 10px 10px; font-family: Verdana, Geneva, sans-serif; color:#333333; font-size:0.9em;">
<div class="row col-xs-12 col-md-12">
</div>
</section>
<!-- close container -->
</head>
<body>
<form name='mturk_form' method='post' id='mturk_form' action='https://www.mturk.com/mturk/externalSubmit'><input type='hidden' value='' name='assignmentId' id='assignmentId'/>
<!-- Content Body -->
<section>
<fieldset>
<div>
<img src="{image_url}" class="img-fluid" alt="left_image_url" height="auto" width="700" style="margin-bottom:15px;" align="center">
</div>
</fieldset>
<fieldset>
<label for="title">Does this image contain a cat? </label>
<textarea class="form-control" rows="4" cols="50" id="optional_comments" name="optional_comments"></textarea>
</fieldset>
</section>
<!-- End Content Body -->
<p><input type='submit' id='submitButton' value='Submit' /></p>
</form>
<script language='Javascript'>turkSetAssignmentID();</script>
</body></html>
<!-- YOUR HTML ENDS -->
]]>
</HTMLContent>
<FrameHeight>600</FrameHeight>
</HTMLQuestion>
(Этот XML-файл используется в качестве параметра вопроса в create_hit)
Когда{image_url} заменяется URL-адресом изображения под корзиной S3 (например, https://s3 -us-west-1.amazonaws.com / myTest / test.jpg ), HIT можно публиковать без каких-либопроблема. Однако я хочу опубликовать HIT с моим локальным изображением, не загружая его в корзину S3. Я генерирую данные URI из изображения (например, data: image / jpg; base64, / 9j / 4AAQSkZJRgABAQAAAQABAAD / 2wBDAAgGBgcGBQgHBwcJC ....). Но когда я пытаюсь опубликовать HIT, я получаю следующую ошибку:
botocore.exceptions.ClientError: An error occurred (ParameterValidationError) when calling the CreateHIT operation: Your request contains too much data for QuestionXML. This parameter can have a maximum length of 131072 characters. (1572501601258 s)
В результате я не могу использовать свой локальный файл для публикации HIT.
Как я могуисправить эту проблему? Или есть ли другой способ опубликовать HIT с локальным изображением, не загружая его?