REF: https://cloud.google.com/nodejs/docs/reference/storage/1.5.x/File#getSignedPolicy
我正在尝试使用已签名的政策将文件上传到我的存储桶。使用文档中的示例,我从我的桶对象获得了3个项目的响应。
"policyString": "{\"expiration\":\"2019-10-18\",\"conditions\":[[\"eq\",\"$key\",\"image.jpg\"],{\"bucket\":\"my-bucket\"},[\"eq\",\"$Content-Type\",\"image/jpeg\"],[\"content-length-range\",0,1024]]}",
"policyBase64": "[some-long-string]",
"policySignature": "[some-long-string]"
在文档中,它还向您展示了如何使用curl上传对象。
REF: https://cloud.google.com/storage/docs/object-basics#upload-object-json
如何将我作为签名政策和上传api
收回的内容组合在一起https://www.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]
使用axios将文件上传到我的存储桶?是否还要附加其他标题?
这是我采取的做法,但我不确定。
const options = {
headers: {
'Authorization': ?
'Content-Type': file.type
}
}
axios.put(concatenatedPolicySignatureUrl, file, options)
.then(response => {
console.log('success!');
}
答案 0 :(得分:5)
签名的策略字符串仅适用于XML API,这意味着POST到app.component.ts
(而不是https://storage.googleapis.com/bucket/object
)。
有关如何生成和使用政策的详细信息,请参阅https://cloud.google.com/storage/docs/xml-api/post-object#policydocument
下面是设置允许用户使用策略字符串上传对象的HTTP表单的示例,尽管您也可以通过JavaScript触发等效的POST请求:
www.googleapis.com/upload