absolute minimal
ファイルをストレージ バケットにアップロードするための要件を探しています。そして必要最小限のコード。
私が持っている最小限の oAuth/API キー情報はconsole.cloud.google.com/apis/credentials/oauthclient/
clientId
: 資格情報ページのクライアント ID。apiKey
: 資格情報ページからのクライアント シークレット?scopes
: ' https://www.googleapis.com/auth/devstorage.read_write ' (なぜ と呼ばれるdevstorage
のですか?開発者のみを対象としているかのようにdevice
?
apiKey が正しいかどうかはわかりませんが、例からこれを使用してもエラーはスローされません。
// This is triggered after the `client.js` loads
function handleClientLoad() {
gapi.client.setApiKey(apiKey);
window.setTimeout(checkAuth,1);
}
function checkAuth() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, handleAuthResult);
}
これがステップ 1 ですが、間違っていたら訂正してください。
Auth Result を処理するには:
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
makeApiCall();
}
}
ここで私はちょっと立ち往生しています、私が取り組んでいる例があります: https://developers.google.com/api-client-library/javascript/start/start-js
が定義されていないgapi.client.plus.people
場所に到達すると、動作が停止します。people
これは、匿名ユーザーがいて、ある種の公開 API キーがあるためです。後でユーザーごとの ACL を実装しますが、今のところは動作/アップロードに必要なだけです。
今、私はAPI-key
基本的にファイルとバケット名を入力するだけでよいファイルをアップロードできる単純なjQueryベースのウィジェットを使用して、Amazon Cloudで同様の作業をしています(PHP
残念ながらそうでした)。
シンプルなだけで満足です<form>
が、私が遭遇した例には、上記の 3 つの最小限のデータ (clientId、apiKey、スコープ) とバケットへの追加の URL (奇妙な暗号化された acl 文字列など) よりも多くの情報/フィールドが含まれています。
bucket-name.storage.googleapis.com
それがファイルの最終的な場所であり、画像を手動でアップロードするときに機能することを理解しています。
私は今、次のgoogle client
ようなものを使用して、絶対に最小限のコード、できればjavascriptを探しています(別の例で見つけました):
gapi.client.request({
'path': '/upload/storage/' + API_VERSION + '/b/' + BUCKET + '/o',
'method': 'POST',
'params': {'uploadType': 'media'}
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
}
必要API_VERSION
ですか?どちらを使用するかを調べるにはどうすればよいpath
ですか? bucket
名前は知ってるけどupload/storage/
どこから来たの?そして/b/
?(ただしhttps://cloud.google.com/storage/docs/json_api/v1/how-tos/uploadは必要であることを示しています) この例では a を含むヘッダーを使用しましたboundary
が、それについては何も見つかりません。それは必要ありません。minimally
問題は、必要なヘッダーが見つからないことです。に遭遇'x-goog-acl': 'public-read'
しましたが、これはヘッダーに含める必要がありますか?
要約すると、私が答えたい質問は次のとおりです。
allUsers
アクセス権が設定されたバケットにアップロードするために最低限必要なヘッダーは何ですかOwner
(私は知っていますが、最良のアイデアではありません。これは将来変更されます)html
フォームからファイルを取得する方法のサンプルコードajax
。リクエストを送信するために使用するかgapi
、それを行うためのものだと思います。
問題が明確であることを願っています。基本的に、正しいコード例をどこから開始/検索すればよいかわかりません。これは、Google JavaScript クライアント API がbeta
..