如何通过 API 发布图片?

因此,我想尝试一种不同的方法,使用 S3 存储。我遵循了此处的说明来设置 AWS S3 存储桶。这是我的设置:

这是我的代码:

	async uploadExternalImage(imageReferences: string[]): Promise<string[]> {
		const imageUrls: string[] = [];
		for (const ref of imageReferences) {
			const filePath = this.app.metadataCache.getFirstLinkpathDest(ref, this.activeFile.name)?.path;
			if (filePath) {
				const file = this.app.vault.getAbstractFileByPath(filePath) as TFile;
				if (file) {
					try {
						const url = `${this.settings.baseUrl}/uploads/generate-presigned-put.json`;
						//const imgfile = await this.app.vault.readBinary(file);
						const img = {
							type: "composer",
							file_name: file.name,
							file_size: file.stat.size,
						}
						console.log(JSON.stringify(img));
						const headers = {
							"Content-Type": "application/json",
							"Api-Key": this.settings.apiKey,
							"Api-Username": this.settings.disUser,
						};
						const response = await requestUrl({
							url: url,
							method: "POST",
							body: JSON.stringify(img),
							throw: false,
							headers: headers
						})
						console.log(response.json)
					} catch (error) {
						console.error(`Error uploading: ${error}`);
						//console.log(response.json)
					}
				} else {
					console.error('error')
				}
			} else {
				console.error('error')
			}
		}
		return imageUrls;
	}

现在,我意识到这目前是行不通的,因为我还没有实际上传文件。根据我在文档中的阅读,我将发送一个包含类型、文件名和文件大小的 JSON 对象。API 应该会回复一个密钥和一个 URL,供我用于实际的文件传输。但此时,我收到了以下错误:

{
    "errors": [
        "The requested URL or resource could not be found."
    ],
    "error_type": "not_found"
}

[
“The requested URL or resource could not be found.”
]

我检查了我的 API 密钥,以确保它具有权限,它确实有。但我还是创建了一个新的。还有一个全局的。都没有用。相同的错误代码。我哪里做错了?

编辑,这是 img 对象:

{"type":"composer","file_name":"face2.jpg","file_size":17342}