フォルダ「投稿」を作成するにはどうすればよいですか?Firebaseクラウドファンクションを使用してフォルダを作成する方法
bucket --> gs://app.appspot.com/posts
コード
exports.generateThumbnail = functions.storage.object()
.onChange(event => {
const object = event.data
const filePath = object.name
const fileName = filePath.split('/').pop()
const fileBucket = object.bucket;
const bucket = gcs.bucket(fileBucket)
const tempFilePath = `/posts/${fileName}`
return bucket.file(filePath).download({
destination: tempFilePath
})
.then(() => {
console.log('image downloaded locally to', tempFilePath)
return spawn('convert', [tempFilePath, '-thumbnail', '400x400>', tempFilePath])
})
.then(() => {
console.log('thumbnail created')
// match end of string that contains a slash followed by 0 or more characters that are not a slash:
const thumbFilePath = filePath.replace(/(\/)?([^\/]*)*/, '$1thumb_$2')
console.log('afoter=thumbFilePath=='+thumbFilePath);
return bucket.upload(tempFilePath, {
destination: thumbFilePath
})
})
});
エラー
Error: EROFS: read-only file system, open '/posts/image.jpg'?
あなたは – aofdev
うわー、私はちょうど雲の機能上のDBへの書き込みしようとして壁に頭を叩いた感謝をしてみてください。明らかにしていただきありがとうございます。どこにドキュメントに記載されているのかわかりません。 – AlxVallejo
また、コードが移植性があることを確認するには、 "tmp"をハードコードしないでください。os.tmpdir()を使用してローカルの一時ディレクトリを取得し、path.join()を使用してサブパスを取得します。これにより、ノードモジュールがWindows上で動作するようになります。これは、ローカルエミュレータを使用してコードをテストする場合に便利です。 –