Как встроить данные URI изображения при публикации HIT на механической турке Amazon? - PullRequest
0 голосов
/ 31 октября 2019

Я хотел бы опубликовать ХИТ об изображении, которое я должен 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 с локальным изображением, не загружая его?

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