0
Firebase機能を使用してイメージのfileNameをダウンロードしてアップロードすることなく変更する方法はありますか?Firebase関数は、ストレージにアップロードされたファイルのfileNameを変更します
私はonChange Listenerを使用して実際のアップロードをキャッチしていますが、アップロードしたファイルについて必要なすべてのデータを取得していますが、ダウンロードすることなく情報を変更することはできません。
私の現在のコード:
const functions = require('firebase-functions');
const path = require('path');
exports.addTimeStamp = functions.storage.object().onChange(event => {
const object = event.data; // The Storage bucket that contains the file.
const filePath = object.name; // File path in the bucket.
const contentType = object.contentType; // File content type.
const resourceState = object.resourceState; // The resourceState is 'exists' or 'not_exists' (for file/folder deletions).
const metageneration = object.metageneration; // Number of times metadata has been generated. New objects have a value of 1.
// Exit if this is triggered on a file that is not an image.
if (!contentType.startsWith('image/')) {
console.log('This is not an image.');
return;
}
if (!filePath.startsWith('deliveryNote/')) {
console.log('This is not a delivery note.');
return;
}
// Get the file name.
const fileName = path.basename(filePath);
console.log('filename: ' + fileName);
// Exit if the image is already a thumbnail.
if (fileName.startsWith('note_')) {
console.log('Already modified');
return;
}
// Exit if this is a move or deletion event.
if (resourceState === 'not_exists') {
console.log('This is a deletion event.');
return;
}
// Exit if file exists but is not new and is only being triggered
// because of a metadata change.
if (resourceState === 'exists' && metageneration > 1) {
console.log('This is a metadata change event.');
return;
}
/////////////////////////////////////////////////////////////
//Added folowing code thx to Doug Stevenson
const bucket = gcs.bucket(object.bucket);
var file = bucket.file(filePath);
console.log('filepath: ' + filePath);
console.log('filename: ' + fileName);
const dirname = path.dirname(filePath);
file.move(dirname + '/' + 'note_' + fileName, function(err, destinationFile, apiResponse) {
});
//////////////////////////////////////////////////////////////
});
私のSparkプランでCloudストレージを使用できますか? そして、moveメソッドが上のように同じことをして、新しいファイルを作成し、古いファイルを削除するように見えます。 –
これは、指定したストレージの名前とパスのみを変更します。ローカルではダウンロードされません。 スパークプランの制限は、https://firebase.google.com/pricing/ –
に記載されています。 –