[*]Подписанный URL-адрес в качестве параметра (URL-адрес файла, хранящегося в хранилище Google)
< li>Язык назначения
Он переводит файл на целевой язык и сохраняет его по тому же пути с дополнительным текстом в имени файла (например, filename_translated) и возвращает подписанный URL-адрес переведенного файла
Теперь проблема, с которой я столкнулся, заключается в том, что я не могу открыть файл, используя подписанный URL-адрес, и получаю следующую ошибку
Код: Выделить всё
NoSuchKey
No such object: we-aid-translation/3159_Invoice-24BD5880-
0009_DE_translations.pdf
Ниже приведен код, который я использую для создания URL-адреса переведенного файла.
TranslateDocumentResponse response = client.translateDocument(request);
log.info("response: {}", response.toString());
String fileNameWithoutExtension = inputFileName.replaceFirst("[.][^.]+$", "");
String translatedDocumentUri = outputPrefix + fileNameWithoutExtension + "_" + targetLanguage + "_translations." + fileExtension;
log.info("translated document Uri {}", translatedDocumentUri);
BlobId blobId = BlobId.of(translationBucketName, fileNameWithoutExtension + "_" + targetLanguage + "_translations." + fileExtension);
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("application/pdf").build();
URL signedUrl = storage.signUrl(blobInfo, signedUrlExpiryTimeInMinutes, TimeUnit.MINUTES,
Storage.SignUrlOption.withV4Signature());
log.info("Translated document signed URL: " + signedUrl);
return Utilities.sendHttpResponse(HttpStatus.OK, Constants.SUCCESS, signedUrl.toString());
PS: Если я вручную захожу в хранилище Google, я нахожу там переведенный файл.
Редактировать 1:
Моя ошибка:
Позже я обнаружил, что эта ошибка возникла из-за небольшой ошибки в подписанном URL-адресе, т. е. он не ссылался на файл, и ошибка была генерируется из-за отсутствия файла.
Постановка проблемы (измененная):
Файл, загруженный после перевода, имеет ContentType или MimeType как application/octet-stream, но мне нужен application/pdf.
Как я могу исправьте это, так как следующие изменения не работают
String outputPrefix = "gs://we-aid-translation/";
DocumentOutputConfig outputConfig = DocumentOutputConfig.newBuilder().setGcsDestination(GcsDestination.newBuilder().setOutputUriPrefix(outputPrefix).build()).setMimeType("application/pdf").build();
и
BlobInfo.newBuilder(blobId).setContentType("application/pdf").build();enter code here
Подробнее здесь: https://stackoverflow.com/questions/791 ... ervice-cli