Почему etag имеет значение null из возвращаемого объекта File при загрузке файла?

Когда я загружаю файл, я хотел бы иметь etag, чтобы потом его можно было удалить. В текущем API etag всегда возвращает null при загрузке файла. Есть ли способ получить etag без двух вызовов API: загрузка файла -> получить информацию о файле?

Даже пример документации возвращает значение null для etag: http://developers.box.com/docs/#files-upload-a-file

Спасибо.


person ademers    schedule 30.08.2012    source источник
comment
Etag - это механизм, используемый для проверки веб-кеша, он предотвращает загрузку прокси-сервером (или клиентом) избыточных данных, которые не изменились. Какая польза от этого при загрузке? Поскольку вы загружаете, данные очевидно только что изменились.   -  person Damon    schedule 31.08.2012
comment
Понятие etag мне не знакомо. API Box требует etag при удалении файла из своего API. Я найду обходной путь. Спасибо, что прояснили ситуацию.   -  person ademers    schedule 31.08.2012
comment
Как насчет загрузки, а затем выполнения HEAD по URL-адресу? Это даст вам все заголовки, включая все, что сервер теперь считает Etag.   -  person Damon    schedule 31.08.2012


Ответы (1)


Расчет Etag был отделен от ответа на загрузку в целях оптимизации производительности. Пока он не будет рассчитан (обычно в пределах пары 100 миллисекунд после загрузки), мы оставляем его равным нулю.

Как уже упоминалось, вы можете вызвать GET на конечной точке / files / вскоре после завершения загрузки, и значение eTag будет там.

У нас есть планы перенести вычисление eTag параллельно с загрузкой и включить его в ответ на вызов POST / files / data, но мы сделаем это только в том случае, если производительность будет, по нашему мнению, разумной.

person Peter    schedule 30.08.2012
comment
(Январь 2013 г.) Удалось ли вам начать вычисление eTag параллельно с загрузкой? Я вижу (как кажется) действительные eTags, возвращенные после POST, и хочу убедиться, что они заслуживают доверия. - person John Hoerr; 15.01.2013
comment
Да, мы переместили вычисление ETag в отдельный поток и обработали его параллельно с остальной частью загрузки. Когда загрузка будет завершена, мы вернем вам ETag в ответе на загрузку. - person Peter; 22.01.2013