API 呼び出しがエンドポイント (私の場合は /attachments) に対して行われると、minio サーバー経由で uploadlink を返すバックエンドがあります。これはバックエンドの POST ハンドラです。
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.TEXT_PLAIN})
public String migrateToMinio(Attachment attachment) throws Exception {
Integer id = attachmentService.createNew(attachment);
String uploadLink = minioFileServer.getUploadLinkForFile("test", attachment.getUuid(), attachment.getName());
return uploadLink;
}
Postman 経由でこの API に POST 要求を送信すると、応答としてアップロード リンクが返されます。
しかし、CURL を使用してそのアップロードリンクにファイルをアップロードすると、このコマンドを使用して
curl "http://127.0.0.1:9000/test/49fa2963-f44b-481d-a6c4-cdd2cd25e3bb/a.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=9LPWUPSK3DEO66JR04LD%2F20180921%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180921T152901Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=73dfe83f6b44a19d77ab08c9317b5bbda213e6ea9e50541f6b664d0e103909d0" -F "file=@/Users/Roshan/Desktop/a.txt"
次のように、メソッドが許可されていないというエラーが表示されます。
しかし、minio クライアントを使用してアップロードリンクを手動で生成し、ファイルの場所を指定してそのリンクに CURL を送信すると、問題なく動作します。これに関するヘルプ/提案をいただければ幸いです。