回答編集履歴
3
修正
test
CHANGED
@@ -10,13 +10,11 @@
|
|
10
10
|
|
11
11
|
という行がありますが、この例文のようにattributesオプションの構造をそのまま辞書化またはJSONフォーマット文字列にしてrequestsで指定しまうと、
|
12
12
|
|
13
|
-
requestsのfilesパラメータの内容と競合して、
|
14
|
-
|
15
13
|
うまくattributesの内容がBOX APIに渡らないようです。
|
16
14
|
|
17
15
|
|
18
16
|
|
19
|
-
したがって、下記のように、parent_idだけ別途、requestsモジュールのdataパラメータに指定してPOSTしてやる必要があります。
|
17
|
+
したがって、下記のように、parent_idだけ別途、requestsモジュールのdataパラメータに指定してPOSTしてやるか、json.dumpsを使用して、ネストされたパラメータを文字列化して渡す必要があります。
|
20
18
|
|
21
19
|
|
22
20
|
|
2
追加
test
CHANGED
@@ -51,6 +51,28 @@
|
|
51
51
|
file_bin = open(file_path, 'rb').read()
|
52
52
|
|
53
53
|
data = { "parent_id": parent_id }
|
54
|
+
|
55
|
+
'''
|
56
|
+
|
57
|
+
または、下記のようにする。
|
58
|
+
|
59
|
+
data = {
|
60
|
+
|
61
|
+
"attributes" : json.dumps({
|
62
|
+
|
63
|
+
"name" : newfile_name,
|
64
|
+
|
65
|
+
"parent" : {
|
66
|
+
|
67
|
+
"id" : parent_id
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
})
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
'''
|
54
76
|
|
55
77
|
# requestsでファイルアップロードするときの構成
|
56
78
|
|
1
修正
test
CHANGED
@@ -1,41 +1,3 @@
|
|
1
|
-
BOXのpython ライブラリ(https://github.com/box/box-python-sdk)を読み解いた結果
|
2
|
-
|
3
|
-
下記のようなことがわかりました。
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
その前にまずrequestsの基本について。
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
[requestsのドキュメント](https://requests.readthedocs.io/en/master/user/quickstart/#post-a-multipart-encoded-file/)に記載がありますが、
|
12
|
-
|
13
|
-
requestsモジュールにおけるMultipart-encoded fileのPOSTには、一定の決まり事があります。
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
すなわち、
|
18
|
-
|
19
|
-
```
|
20
|
-
|
21
|
-
files = {'任意のキー': (<ファイル名>, <ファイルの内容>, <MIMEタイプ(省略可)>)}
|
22
|
-
|
23
|
-
```
|
24
|
-
|
25
|
-
のように、キーとタプルから成る辞書を用意して、それをrequestsのpost関数のfilesパラメータに指定する必要があります。
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
また、requestsのPOSTのときは、基本的にPOST内容によって自動的にContent-Typeを変えて送信してくれますので、あえてContent-Typeを指定する必要はありません。
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
では、BOXの方に移ります。
|
36
|
-
|
37
|
-
|
38
|
-
|
39
1
|
BOXのリファレンス上の[curlでのポスト例](https://developer.box.com/reference/post-files-content/#request-example)には
|
40
2
|
|
41
3
|
```
|