2014/07/18

OneDrive フォルダ・ファイル名の長さにはご注意を!~255文字の制限

昨日、とあるお方から教えていただいた内容と少し調べた内容をメモ。
OneDrive(旧SkyDrive)は、ファイル名を含めたパス全体の長さが255文字以内という制限がある事をご存じですか?
調べてみた限り、制限される環境とされない環境がありますので、OneDriveを使う方は覚えておいて損はないと思います。
2014.07.18 フォルダ名を日本語にした場合の結果を追記しました

現象

  • OneDriveが管理するローカル フォルダにおいて、ファイル 名を含めたパス全体の長さが255文字以上になる場合はエラー メッセージが表示される
    ※チェック機能が働いていますね
    image
  • 上と同じ環境でフォルダ名を全て日本語にし、ファイル 名を含めたパス全体の長さが235文字以上になる場合はエラー メッセージが表示される

  • ブラウザ上でファイル 名を含めたパス全体の長さが255文字以上のオブジェクトを作成し、クライアントで同期が始まるとエラー メッセージが表示される
    ※例外処理として処理されてますね
    2014-07-18_083802
  • 同期エラーが発生するとOneDrive クライアントの再構築を行う必要がある
    ※一度だけSkyDrive.exe プロセスが落ちました
    2014-07-18_083945

原因

OneDriveのヘルプ ページの「同期時のファイルへのパスが長すぎる」で制限についてしっかりと説明されています。
OneDrive デスクトップ アプリの同期に関する問題
説明には、
ファイル名を含めたパス全体の長さが255文字より短くする必要があります
と明記されています。
この説明はWindows 7や8、8.1が対象だと考えています。
その理由は2点だと考えています。
  1. Windows の文字長の制限
    1. ブラウザ上からの操作、AndroidやiOSなど他OSでは、この制限は適用されません
      ※Apple社Macは所有していないので確認できません
    制限が適用されなかった環境は下記の通り。
    • ブラウザから操作
    • OneDrive <-> Android(4.2.2)
    • OneDrive <-> iOS(7.1.2)
    予想ですが、Windows と異なるアーキテクチャを利用しているためだと思います。
    大体の方はWindows をご利用でしょうから
    OneDriveに、パス全体の長さが250文字前後のフォルダを作成

    Android から、パス全体の長さが255文字を超えてしまうファイル名の画像をアップロード

    Windows で同期エラーが発生

    OneDriveの再構築
    というシナリオは考えられます。
    マルチ デバイスでの利用を想定している以上、Windows用OneDrive クライアントと制限の整合性が取れていない事はまずいのではないかと思っています。
    OneDriveを利用される方で今回のような使い方をしようとする方はいらっしゃらないと思いますが、注意が必要だと思っています。
    スポンサーリンク

    スポンサーリンク