<p>下面是一个关于如何在上载时指定下载令牌的示例:</p>
<pre><code>const UUID = require("uuid-v4");
const fbId = "<YOUR APP ID>";
const fbKeyFile = "./YOUR_AUTH_FIlE.json";
const gcs = require('@google-cloud/storage')({keyFilename: fbKeyFile});
const bucket = gcs.bucket(`${fbId}.appspot.com`);
var upload = (localFile, remoteFile) => {
let uuid = UUID();
return bucket.upload(localFile, {
destination: remoteFile,
uploadType: "media",
metadata: {
contentType: 'image/png',
metadata: {
firebaseStorageDownloadTokens: uuid
}
}
})
.then((data) => {
let file = data[0];
return Promise.resolve("https://firebasestorage.googleapis.com/v0/b/" + bucket.name + "/o/" + encodeURIComponent(file.name) + "?alt=media&token=" + uuid);
});
}
</code></pre>
<p>然后打电话给我</p>
<pre><code>upload(localPath, remotePath).then( downloadURL => {
console.log(downloadURL);
});
</code></pre>
<p>这里的关键是<code>metadata</code>选项属性中嵌套了一个<code>metadata</code>对象。将<code>firebaseStorageDownloadTokens</code>设置为uuid-v4值将告诉云存储将其用作其公共身份验证令牌</p>
<p>非常感谢@Martemorphosis</p>