質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

0回答

2455閲覧

node.jsでzipを解凍したい

west_side_park

総合スコア45

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2021/08/16 00:19

編集2021/08/17 08:03

前提・実現したいこと

node.jsでアプリを作成しています。
S3上のとあるバケットにzipファイルが添付されたメールが保存されており、
このファイルを解凍して、中身の画像ファイルやテキストファイルを操作したいです。
現在、バケット内のメールをダウンロードして、from、to、subject、date、filename、attachmentsが取れており、
params.attachmentsを「node-zip」を使って解凍したいのですが、ググってみても参考記事が見当たらず、
どうすればよいか手が止まってしまいました。。
「node-zip」でなくても良いのですが、何か良い手段はないでしょうか。
paramsの中身は以下のようになっています。(一部省略)

console

1{ 2 filename: 'test.zip', 3 content: <Buffer 50 4b 03 04 14... more bytes>, 4 from: 'test@gmail.com', 5 to: 'test@gmail.com', 6 subject: 'test', 7 date: 2021-08-10T08:59:00.000Z, 8 text: 'これはテストです', 9 attachments: [ 10 { 11 type: 'attachment', 12 content: <Buffer 50 4b 03 04 14... 350132 more bytes>, 13 contentType: 'application/x-zip-compressed', 14 partId: '2', 15 release: null, 16 contentDisposition: 'attachment', 17 filename: 'test.zip', 18 contentId: '<f_krq476bn0>', 19 cid: 'f_krq476bn0', 20 headers: [Map], 21 checksum: '83db1b529532216f65b9c86161526b02', 22 size: 350182 23 } 24 ] 25}

試していること

js

1const nodeZip = require('node-zip'); 2 3const filetype = this.checkfile(params.filename) ← 拡張子チェックを実装してます 4let files; 5if (filetype = ZIP) { 6 files = await this.unzip(params.attachments); ← ここを実装したい 7} else { 8 console.log(`filetype error: ${params.filename}`); 9} 10 11for (let i = 0; i < files.length; i++;) { ←解凍した中身をループで処理 12 filetype = this.checkfile(files[i]) { 13 switch (filetype) { 14 case JPG: 15 jpgファイルの時の処理 16 break; 17 case TXT: 18 textファイルの時の処理 19 break; 20  case CSV: 21 csvファイルの時の処理 22 break; 23  default: 24 break; 25 } 26 } 27}

試したといっても、肝心の部分が何もできておらず恐縮ですが、
ご教授いただければ幸いです。
よろしくお願い致します。

見てみたサイト
https://www.npmjs.com/package/node-zip
https://zebevogue.hatenadiary.org/entry/20121103/1351924627 など

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問