teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

解凍を追記しました。

2019/06/23 08:46

投稿

kisojin
kisojin

スコア899

answer CHANGED
@@ -17,7 +17,18 @@
17
17
  - [getBlob()](https://developers.google.com/apps-script/reference/drive/file#getBlob())
18
18
  - [setContentTypeFromExtension()](https://developers.google.com/apps-script/reference/base/blob#setContentTypeFromExtension())
19
19
 
20
- ## 追記
20
+ ## 追記1
21
21
  誤記とのことで、気付かず申し訳ありませんでした。
22
22
 
23
- 次に問題になるのは、ファイルサイズです。Google Apps Scriptで扱うことのできるファイルサイズの最大サイズは50 MB(52,428,800 bytes)です。これについては如何でしょうか。
23
+ 次に問題になるのは、ファイルサイズです。Google Apps Scriptで扱うことのできるファイルサイズの最大サイズは50 MB(52,428,800 bytes)です。これについては如何でしょうか。
24
+
25
+ ## 追記2
26
+ コメントありがとうございます。状況を理解することができました。こちらではLinuxとGoogle Apps Scriptで同様のテスト(圧縮元のファイル名に全角文字列を使用する)を行っていましたが、その際はエラーは発生しませんでしたので特に問題では無いのではと考えてしまいました。windowsでテストをすると、同様のエラー(サーバーエラーが発生しました。しばらくしてからもう一度試してください。)が発生することを確認できました。anakama様のテスト環境はwindowsでしたでしょうか。
27
+
28
+ おそらく問題の原因は、windowsではsjisが使われているのに対してLinuxやGoogle Apps Scriptではutf8が使われていることによると思われます。
29
+
30
+ 結論といたしまして、Google Apps Scriptを使ってzip圧縮された元ファイル(CSVファイル)のファイル名を変更しようとすると、必ず一度解凍する必要がありますので、残念ながら、今の状況では``Utilities.unzip()``でエラーが発生するため、解決できません。そこで、次のような回避策を提案させていただきます。ご質問の状況に合わせて説明させていただきます。
31
+
32
+ 1. zipで圧縮する際にCSVファイルのファイル名をutf8に変換する。
33
+
34
+ 2. CSVファイルのファイル名を一度、半角アルファベットや数字などに変換してzip圧縮し、Google Apps Script上でzipファイルから解答する際にCSVファイルのファイル名を元のファイル名に戻す。

1

追記しました。

2019/06/23 08:46

投稿

kisojin
kisojin

スコア899

answer CHANGED
@@ -15,4 +15,9 @@
15
15
 
16
16
  ### 参考
17
17
  - [getBlob()](https://developers.google.com/apps-script/reference/drive/file#getBlob())
18
- - [setContentTypeFromExtension()](https://developers.google.com/apps-script/reference/base/blob#setContentTypeFromExtension())
18
+ - [setContentTypeFromExtension()](https://developers.google.com/apps-script/reference/base/blob#setContentTypeFromExtension())
19
+
20
+ ## 追記
21
+ 誤記とのことで、気付かず申し訳ありませんでした。
22
+
23
+ 次に問題になるのは、ファイルサイズです。Google Apps Scriptで扱うことのできるファイルサイズの最大サイズは50 MB(52,428,800 bytes)です。これについては如何でしょうか。