You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
region
14 days agoHelpful | Level 6
API接続による共有設定
A,B,Cと3つのシステムにてAPIを通したファイル共有を検討中です。
以下のようなフォルダ構成で、それぞれ3システムのアクセス権を制御したいのですが、うまくいかず投稿させていただきました。
/<アカウントの名前>
├ Bフォルダ ・・・ AとBシステムが読書き可能
└ Cフォルダ ・・・ AとCシステムが読書き可能
BフォルダのリンクをBシステムに、CフォルダのリンクをCシステムに通知して、APIでアクセスしてもらおうと考えております。
(Aシステムはアカウント本人として考えています。)
そもそも、この考えが間違っている、あるいは、より良い方法がありましたら、ご指摘、ご教授いただければ幸いです。
以下、上記の考えを元に、試した状況です。
1.アプリを作成し、アクセストークンを取得
2.Aシステムから、APIでファイルをアップロード
3./アプリ/<アプリ名>/Bフォルダ 配下にファイルが作成された
3.で想定と異なり、今に至ります。
APIで、/<アカウントの名前>/Bフォルダ 配下にアップロードはできないのでしょうか?
Businesプランで、チームフォルダを利用しないといけないような気がしています。
よろしくお願いいたします。
すみません。チームフォルダを使用せずとも、「/<アカウントの名前>/Bフォルダ」を共有することで、できました。
上記手順と同様ですが、
Dropbox-API-Path-Root: {".tag": "root", "root": "<root_namespace_id>"}
Dropbox-API-Arg: {"path":"/<アカウントの名前>/Bフォルダ/<ファイル名>"} (unicode でエンコード)
を指定し、確認取れました。
前述の質問につきましても、
1.APIを使用して、共通リンクフォルダにアップロードできるのか?
→ 「/<アカウントの名前>/」 配下にアップロードして、共有機能で対応するため不要
2.APIにて「Dropbox-API-Select-User」が必要なのは何故か?
→疑問は残るものの、そういうものだと理解しておきます。
お騒がせいたしましたが、解決いたしました。
- Hinano MaetaDropbox Staff
region さん、こんにちは!
ご認識通り、Bの配下にはおけず、個別のフォルダが生成される仕様となります。
- regionHelpful | Level 6
早速の回答ありがとうございます。
Bの配下にはおけず、個別のフォルダが生成される仕様となります。
なるほど。
別の方法で検討いたします。
- Hinano MaetaDropbox Staff
- regionHelpful | Level 6
別の方法を検討し、チームフォルダを使用する方法で目途が立ちましたので、記載しておきます。
1.Aアカウント、Bアカウントそれぞれで、アプリTypeを 「Full Dropbox」 で作成
この時、「App folder」で作成すると、前述の通り「/アプリ/<アプリ名>/」 配下にアップロードされてしまう。 Dropbox-API-Path-Root: {".tag": "root", "root": "<root_namespace_id>"} なども試してみたがエラー。「/アプリ/<アプリ名>/」配下のフォルダー共有は、「リンクでしか共有できません。」となり、APIからの呼び出し方が分からず。。。(共有リンクされたフォルダーへのアップロードはできない?)
2.以下のフォルダ構成を設定
/チームフォルダ
├ Bフォルダ ・・・ Aアカウント、Bアカウントが読書き可能
└ Cフォルダ ・・・ Aアカウントのみ読書き可能
3.Aアプリから生成したアクセストークンで「「/チームフォルダ/Bフォルダ/」」にファイルをアップロードできた
4.Aアプリから生成したアクセストークンで「「/チームフォルダ/Cフォルダ/」」にファイルをアップロードできた
5.Bアプリから生成したアクセストークンで「「/チームフォルダ/Bフォルダ/」」にファイルをアップロードできた
6.Bアプリから生成したアクセストークンで「「/チームフォルダ/Cフォルダ/」」にファイルをアップロードでエラーになった
これで、想定通りの動作になりました。
アップロードする際、「path/no_write_permission/」のエラーが解消せず、pathプロパティに「チームフォルダ―」も含めないといけないことが分からずハマりました。
https://www.dropboxforum.com/discussions/101000014/upload-a-file-to-a-shared-folder-using-the-rest-api/763488
当件につきましては、解決したのですが、試している中で、疑問に思ったことがあるため、以下2点確認させていただければと思います。(別途、新規質問すべきであれば質問し直しますので、その旨ご指摘いただければ幸いです)
1.APIを使用して、共通リンクフォルダにアップロードできるのか?
2.APIにて「Dropbox-API-Select-User」が必要なのは何故か?
2.につきましては、Aアプリとして呼び出すAPIでは「Dropbox-API-Select-User」が必要で、Bアプリとして呼び出すAPIでは、不要でした。Aはチーム管理者、Bはメンバーであるため、その違いかとも思ったのですが、1アカウントで参加可能なチームは1つのため、わざわざ「Dropbox-API-Select-User」を指定する意味が良く分かりませんでした。(仕様ということであればそれでOKです。)
よろしくお願いいたします。
- regionHelpful | Level 6
すみません。チームフォルダを使用せずとも、「/<アカウントの名前>/Bフォルダ」を共有することで、できました。
上記手順と同様ですが、
Dropbox-API-Path-Root: {".tag": "root", "root": "<root_namespace_id>"}
Dropbox-API-Arg: {"path":"/<アカウントの名前>/Bフォルダ/<ファイル名>"} (unicode でエンコード)
を指定し、確認取れました。
前述の質問につきましても、
1.APIを使用して、共通リンクフォルダにアップロードできるのか?
→ 「/<アカウントの名前>/」 配下にアップロードして、共有機能で対応するため不要
2.APIにて「Dropbox-API-Select-User」が必要なのは何故か?
→疑問は残るものの、そういうものだと理解しておきます。
お騒がせいたしましたが、解決いたしました。
About 質問する
他のユーザーのディスカッションで回答が見つかる場合があります。回答が見つからない場合は、新しく質問してください。
Need more support
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!