Halaman ini berisi penjelasan seputar metode pemecahan masalah terkait error umum yang mungkin Anda alami saat menggunakan Cloud Storage.
Lihat Dasbor Google Cloud Service Health untuk mendapatkan informasi tentang insiden yang memengaruhi layanan Google Cloud seperti Cloud Storage.
Logging permintaan mentah
Saat menggunakan alat seperti gcloud
atau library klien Cloud Storage, sebagian besar
informasi permintaan dan respons ditangani oleh alat tersebut. Namun, terkadang
ada baiknya melihat detail untuk membantu pemecahan masalah atau saat memposting
pertanyaan ke forum seperti Stack Overflow. Gunakan petunjuk
berikut untuk menampilkan header permintaan dan respons di alat Anda:
Konsol
Tampilan informasi permintaan dan respons bergantung pada browser yang Anda gunakan untuk mengakses Konsol Google Cloud. Untuk browser Google Chrome:
Klik tombol menu utama Chrome (more_vert).
Pilih Alat Lainnya.
Klik Alat Developer.
Klik tab Jaringan di panel yang muncul.
Command line
Gunakan flag proses debug global dalam permintaan Anda. Contoh:
gcloud storage ls gs://my-bucket/my-object --log-http --verbosity=debug
Library klien
C++
Tetapkan variabel lingkungan
CLOUD_STORAGE_ENABLE_TRACING=http
untuk mendapatkan traffic HTTP lengkap.Tetapkan variabel lingkungan CLOUD_STORAGE_ENABLE_CLOG=yes untuk mendapatkan logging dari setiap RPC.
C#
Tambahkan logger melalui ApplicationContext.RegisterLogger
, dan tetapkan opsi
logging di pengendali pesan HttpClient
. Untuk mengetahui informasi selengkapnya, lihat halaman
entri FAQ:
Go
Tetapkan variabel lingkungan GODEBUG=http2debug=1
. Untuk mengetahui informasi
selengkapnya, lihat halaman Go package net/http.
Jika Anda ingin mencatat log isi permintaan, gunakan klien HTTP kustom.
Java
Buat file bernama "logging.properties" menggunakan konten berikut:
# Properties file which configures the operation of the JDK logging facility. # The system will look for this config file to be specified as a system property: # -Djava.util.logging.config.file=${project_loc:googleplus-simple-cmdline-sample}/logging.properties # Set up the console handler (uncomment "level" to show more fine-grained messages) handlers = java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = CONFIG # Set up logging of HTTP requests and responses (uncomment "level" to show) com.google.api.client.http.level = CONFIG
Gunakan logging.properties dengan Maven
mvn -Djava.util.logging.config.file=path/to/logging.properties insert_command
Untuk mengetahui informasi selengkapnya, lihat Pluggable HTTP Transport.
Node.js
Tetapkan variabel lingkungan NODE_DEBUG=https
sebelum memanggil skrip
Node.
PHP
Berikan pengendali HTTP Anda ke klien menggunakan
httpHandler
dan siapkan middleware untuk mencatat log permintaan
dan respons.
Python
Gunakan modul logging. Contoh:
import logging import http.client logging.basicConfig(level=logging.DEBUG) http.client.HTTPConnection.debuglevel=5
Ruby
Di bagian atas .rb file
setelah require "google/cloud/storage"
,
tambahkan kode berikut:
ruby Google::Apis.logger.level = Logger::DEBUG
Menambahkan header kustom
Penambahan header kustom ke permintaan adalah alat yang umum digunakan untuk tujuan proses debug, seperti untuk mengaktifkan header debug atau melacak permintaan. Contoh berikut menunjukkan cara menetapkan header permintaan untuk berbagai alat Cloud Storage:
Command line
Gunakan flag --additional-headers
, yang tersedia untuk sebagian besar
perintah. Contoh:
gcloud storage objects describe gs://my-bucket/my-object --additional-headers=HEADER_NAME=HEADER_VALUE
Dengan HEADER_NAME
dan
HEADER_VALUE
adalah header yang Anda tambahkan
ke permintaan.
Library klien
C++
namespace gcs = google::cloud::storage;
gcs::Client client = ...;
client.AnyFunction(... args ..., gcs::CustomHeader("header-name", "value"));
C#
Contoh berikut akan menambahkan header kustom ke setiap permintaan yang dibuat oleh library klien.
using Google.Cloud.Storage.V1;
var client = StorageClient.Create();
client.Service.HttpClient.DefaultRequestHeaders.Add("custom-header", "custom-value");
var buckets = client.ListBuckets("my-project-id");
foreach (var bucket in buckets)
{
Console.WriteLine(bucket.Name);
}
Go
Untuk menambahkan header kustom ke permintaan yang dibuat oleh library klien Go,
diperlukan penggabungan transpor yang digunakan untuk klien dengan RoundTripper
kustom.
Contoh berikut akan mengirimkan header debug dan mencatat log header respons
yang sesuai:
package main
import (
"context"
"io/ioutil"
"log"
"net/http"
"cloud.google.com/go/storage"
"google.golang.org/api/option"
raw "google.golang.org/api/storage/v1"
htransport "google.golang.org/api/transport/http"
)
func main() {
ctx := context.Background()
// Standard way to initialize client:
// client, err := storage.NewClient(ctx)
// if err != nil {
// // handle error
// }
// Instead, create a custom http.Client.
base := http.DefaultTransport
trans, err := htransport.NewTransport(ctx, base, option.WithScopes(raw.DevstorageFullControlScope),
option.WithUserAgent("custom-user-agent"))
if err != nil {
// Handle error.
}
c := http.Client{Transport:trans}
// Add RoundTripper to the created HTTP client.
c.Transport = withDebugHeader{c.Transport}
// Supply this client to storage.NewClient
client, err := storage.NewClient(ctx, option.WithHTTPClient(&c))
if err != nil {
// Handle error.
}
// Use client to make a request
}
type withDebugHeader struct {
rt http.RoundTripper
}
func (wdh withDebugHeader) RoundTrip(r *http.Request) (*http.Response, error) {
headerName := "X-Custom-Header"
r.Header.Add(headerName, "value")
resp, err := wdh.rt.RoundTrip(r)
if err == nil {
log.Printf("Resp Header: %+v, ", resp.Header.Get(headerName))
} else {
log.Printf("Error: %+v", err)
}
return resp, err
}
Java
import com.google.api.gax.rpc.FixedHeaderProvider;
import com.google.api.gax.rpc.HeaderProvider;
import com.google.cloud.WriteChannel;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.io.IOException;
import java.nio.ByteBuffer;
import static java.nio.charset.StandardCharsets.UTF_8;
public class Example {
public void main(String args[]) throws IOException {
HeaderProvider headerProvider =
FixedHeaderProvider.create("custom-header", "custom-value");
Storage storage = StorageOptions.getDefaultInstance()
.toBuilder()
.setHeaderProvider(headerProvider)
.build().getService();
String bucketName = "example-bucket";
String blobName = "test-custom-header";
// Use client with custom header
BlobInfo blob = BlobInfo.newBuilder(bucketName, blobName).build();
byte[] stringBytes;
try (WriteChannel writer = storage.writer(blob)) {
stringBytes = "hello world".getBytes(UTF_8);
writer.write(ByteBuffer.wrap(stringBytes));
}
}
}
Node.js
const storage = new Storage();
storage.interceptors.push({
request: requestConfig => {
Object.assign(requestConfig.headers, {
'X-Custom-Header': 'value',
});
return requestConfig;
},
});
PHP
Semua panggilan metode yang memicu permintaan http menerima argumen
$restOptions
opsional sebagai argumen terakhir. Anda dapat memberikan header
kustom ke setiap permintaan atau setiap klien.
use Google\Cloud\Storage\StorageClient;
$client = new StorageClient([
'restOptions' => [
'headers' => [
'x-foo' => 'bat'
]
]
]);
$bucket = $client->bucket('my-bucket');
$bucket->info([
'restOptions' => [
'headers' => [
'x-foo' => 'bar'
]
]
]);
Python
from google.cloud import storage
client = storage.Client(
extra_headers={
"x-custom-header": "value"
}
)
Ruby
require "google/cloud/storage"
storage = Google::Cloud::Storage.new
storage.add_custom_headers { 'X-Custom-Header'=> 'value' }
Mengakses bucket dengan konfigurasi CORS
Jika Anda telah menetapkan konfigurasi CORS di bucket dan melihat bahwa permintaan masuk dari browser klien gagal, coba langkah-langkah pemecahan masalah berikut:
Tinjau konfigurasi CORS pada bucket target. Jika ada beberapa entri konfigurasi CORS, pastikan nilai permintaan yang Anda gunakan untuk memecahkan masalah dipetakan ke nilai dalam satu entri konfigurasi CORS.
Saat menguji penerbitan permintaan CORS, pastikan Anda tidak membuat permintaan ke endpoint
storage.cloud.google.com
, yang tidak mengizinkan permintaan CORS. Untuk mengetahui informasi selengkapnya tentang endpoint yang didukung untuk CORS, lihat Dukungan CORS Cloud Storage.Tinjau permintaan dan respons menggunakan alat pilihan Anda. Di browser Chrome, Anda dapat menggunakan alat developer standar untuk melihat informasi ini:
- Klik menu Chrome (more_vert) di toolbar browser.
- Pilih Alat Lainnya > Alat Developer.
- Klik tab Jaringan.
- Dari aplikasi atau command line, kirim permintaan tersebut.
- Di panel yang menampilkan aktivitas jaringan, cari permintaan tersebut.
- Di kolom Name, klik nama yang sesuai dengan permintaan.
- Klik tab Header untuk melihat header respons, atau tab Response untuk melihat isi respons.
Jika Anda tidak melihat permintaan dan respons, mungkin browser telah meng-cache upaya permintaan preflight yang gagal sebelumnya. Menghapus cache browser juga akan menghapus cache preflight. Jika tidak, tetapkan nilai
MaxAgeSec
dalam konfigurasi CORS Anda ke nilai yang lebih rendah dari nilai default1800
(30 menit), tunggu selama durasiMaxAgeSec
lama, lalu coba ulangi permintaan tersebut. Tindakan ini akan melakukan permintaan preflight baru, yang mengambil konfigurasi CORS baru dan menghapus permanen entri cache. Setelah men-debug masalah, naikkanMaxAgeSec
kembali ke nilai yang lebih tinggi untuk mengurangi traffic preflight ke bucket Anda.Pastikan permintaan memiliki header
Origin
dan nilai header-nya cocok setidaknya dengan salah satu nilaiOrigins
dalam konfigurasi CORS bucket. Perhatikan bahwa skema, host, dan port nilai harus sama persis. Beberapa contoh kecocokan yang dapat diterima adalah sebagai berikut:http://origin.example.com
cocok denganhttp://origin.example.com:80
(karena 80 adalah port HTTP default), tetapi tidak cocok denganhttps://origin.example.com
,http://origin.example.com:8080
,http://origin.example.com:5151
, atauhttp://sub.origin.example.com
.https://example.com:443
cocok denganhttps://example.com
, tetapi tidak cocok denganhttp://example.com
atauhttp://example.com:443
.http://localhost:8080
hanya cocok persis denganhttp://localhost:8080
dan tidak cocok denganhttp://localhost:5555
atauhttp://localhost.example.com:8080
.
Untuk permintaan sederhana, pastikan metode HTTP permintaan cocok dengan setidaknya salah satu nilai
Methods
dalam konfigurasi CORS bucket. Untuk permintaan preflight, pastikan metode yang ditentukan dalamAccess-Control-Request-Method
cocok dengan setidaknya salah satu nilaiMethods
.Untuk permintaan preflight, periksa apakah permintaan menyertakan satu atau beberapa header
Access-Control-Request-Header
. Jika demikian, pastikan setiap nilaiAccess-Control-Request-Header
cocok dengan nilaiResponseHeader
dalam konfigurasi CORS bucket. Semua header yang disebutkan dalamAccess-Control-Request-Header
harus ada dalam konfigurasi CORS agar permintaan preflight berhasil dan menyertakan header CORS dalam respons.
Kode error
Berikut adalah kode status HTTP umum yang mungkin Anda temui.
400: Bad Request
Masalah: Saat melakukan upload yang dapat dilanjutkan, saya mendapatkan error ini dan
pesan Failed to parse Content-Range header.
Solusi: Nilai yang Anda gunakan dalam header Content-Range
tidak valid. Sebagai contoh,
Content-Range: */*
tidak valid dan harus ditetapkan sebagai
Content-Range: bytes */*
. Jika error ini muncul, artinya proses upload yang
dapat dilanjutkan saat ini tidak aktif lagi, dan Anda harus memulai proses upload baru yang dapat dilanjutkan.
401: Unauthorized
Masalah: Permintaan langsung ke bucket publik, atau menggunakan Cloud CDN, gagal dengan respons HTTP 401: Unauthorized
dan Authentication Required
.
Solusi: Pastikan klien Anda, atau proxy perantara apa pun, tidak menambahkan
header Authorization
ke permintaan ke Cloud Storage. Setiap permintaan dengan
header Authorization
, meskipun kosong, akan divalidasi seolah-olah permintaan tersebut merupakan
upaya autentikasi.
403: Account Disabled
Masalah: Saya mencoba membuat bucket, tetapi malah mendapatkan error 403 Account Disabled
.
Solusi: Error ini menunjukkan bahwa Anda belum mengaktifkan penagihan untuk project terkait. Untuk mengetahui langkah-langkah mengaktifkan penagihan, lihat Mengaktifkan penagihan untuk project.
Jika penagihan diaktifkan dan pesan error ini terus muncul, Anda dapat menghubungi dukungan dengan memberikan project ID dan deskripsi masalah ini.
403: Forbidden
Masalah: Saya seharusnya memiliki izin untuk mengakses bucket atau objek tertentu, tetapi
saat mencobanya, saya malah mendapatkan error 403 - Forbidden
dengan pesan yang
mirip dengan: example@email.com does not have storage.objects.get access to the
Google Cloud Storage object
.
Solusi: Anda tidak memiliki izin IAM pada bucket atau objek yang diperlukan untuk menyelesaikan permintaan. Jika tidak dapat membuat permintaan sesuai ekspektasi Anda, lakukan pemeriksaan berikut:
Apakah penerima akses yang disebutkan dalam pesan error sudah sesuai dengan ekspektasi Anda? Jika pesan error merujuk ke alamat email yang tidak terduga atau pada "Pemanggil anonim", artinya permintaan Anda tidak menggunakan kredensial seperti yang diinginkan. Hal ini dapat terjadi karena alat yang digunakan untuk membuat permintaan dibuat dengan kredensial dari alias atau entity lain. Alasan lain adalah karena permintaan dibuat atas nama Anda oleh akun layanan.
Apakah izin yang disebutkan dalam pesan error sesuai dengan yang Anda perlukan? Jika izinnya ternyata tidak sesuai ekspektasi, kemungkinan besar karena alat yang digunakan memerlukan akses tambahan untuk menyelesaikan permintaan Anda. Misalnya, untuk menghapus objek dalam bucket secara massal,
gcloud
harus terlebih dahulu membuat daftar objek di bucket yang ingin dihapus. Bagian penghapusan massal ini memerlukan izinstorage.objects.list
, yang mungkin mengejutkan, mengingat sasarannya adalah penghapusan objek, yang biasanya hanya memerlukan izinstorage.objects.delete
. Jika pesan error muncul karena masalah ini, pastikan Anda telah diberi peran IAM yang memiliki izin tambahan yang diperlukan.Apakah Anda diberi peran IAM tersebut di resource yang dimaksud atau di resource induk? Sebagai contoh, jika Anda diberi peran
Storage Object Viewer
untuk suatu project lalu Anda mencoba mendownload objek, pastikan objek berada dalam bucket yang ada di project tersebut. Anda mungkin tidak sengaja memiliki izinStorage Object Viewer
untuk project yang berbeda.Apakah izin Anda untuk mengakses bucket atau objek tertentu diberikan melalui nilai kemudahan? Penghapusan akses yang diberikan ke nilai kemudahan dapat menyebabkan akun utama yang sebelumnya diaktifkan kehilangan akses ke resource.
Misalnya, jane@example.com memiliki peran dasar Pemilik (
roles/owner
) untuk project bernamamy-example-project
, dan kebijakan IAM project tersebut memberikan peran Storage Object Creator (roles/storage.objectCreator
) ke nilai kemudahanprojectOwner:my-example-project
. Artinya, jane@example.com memiliki izin yang terkait dengan peran Storage Object Creator untuk bucket dalammy-example-project
. Jika pemberian ini dihapus, jane@example.com akan kehilangan izin yang terkait dengan peran Storage Object Creator.Dalam skenario seperti itu, Anda dapat mendapatkan kembali akses ke bucket atau objek dengan memberikan izin level bucket atau level objek yang diperlukan untuk melakukan tindakan yang Anda perlukan.
Apakah ada kebijakan Tolak IAM yang mencegah Anda menggunakan izin tertentu? Anda dapat menghubungi administrator organisasi untuk mengetahui apakah kebijakan IAM Deny telah diterapkan.
409: Conflict
Masalah: Saya mencoba membuat bucket, tetapi malah mendapatkan error berikut:
409 Conflict. Sorry, that name is not available. Please try a different one.
Solusi: Nama bucket yang Anda coba buat (misalnya, gs://cats
atau gs://dogs
)
sudah digunakan. Cloud Storage memiliki namespace global sehingga Anda tidak dapat
memberi bucket dengan nama yang sama seperti bucket yang ada. Pilih nama yang
tidak digunakan.
412: Batasan kustom dilanggar
Masalah: Permintaan saya ditolak dengan error 412 orgpolicy
.
Masalah: Permintaan saya ditolak dengan error 412 Multiple constraints were violated
.
Solusi: Hubungi tim administrator keamanan Anda untuk mengetahui apakah bucket yang Anda gunakan untuk mengirim permintaan terpengaruh oleh kebijakan organisasi yang menggunakan batasan kustom. Bucket Anda mungkin juga terpengaruh oleh kebijakan organisasi yang berbeda-beda dan saling bertentangan. Misalnya, jika satu kebijakan menentukan bahwa bucket harus memiliki class penyimpanan Standard dan kebijakan lain menentukan bahwa bucket harus memiliki class penyimpanan Coldline.
429: Too Many Requests
Masalah: Permintaan saya ditolak dengan error 429 Too Many Requests
.
Solusi: Anda mencapai batas jumlah permintaan Cloud Storage yang diperbolehkan untuk resource tertentu. Lihat Kuota Cloud Storage untuk membaca penjelasan mengenai batasan di Cloud Storage.
Jika beban kerja Anda terdiri dari 1.000 permintaan per detik ke bucket, lihat Pedoman rasio permintaan dan distribusi akses untuk membaca penjelasan mengenai praktik terbaik, termasuk cara meningkatkan beban kerja secara bertahap dan menghindari nama file berurutan.
Jika beban kerja Anda berpotensi menggunakan traffic keluar jaringan sebesar 50 Gbps atau lebih ke lokasi tertentu, periksa penggunaan bandwidth Anda untuk memastikan Anda tidak mengalami kuota bandwidth.
Mendiagnosis error Konsol Google Cloud
Masalah: Saya mendapatkan pesan error generik saat menggunakan Konsol Google Cloud untuk melakukan suatu operasi. Contohnya, saya melihat pesan error saat mencoba menghapus bucket, tetapi tidak ada detail informasi terkait alasan operasi itu gagal.
Solusi: Gunakan notifikasi Konsol Google Cloud untuk melihat informasi mendetail tentang operasi yang gagal tersebut.
Klik tombol Notifications (notifications) di header Konsol Google Cloud.
Dropdown akan menampilkan operasi terbaru yang dilakukan oleh konsol Google Cloud.
Klik item yang ingin Anda lihat detailnya lebih lanjut.
Halaman yang menampilkan detail informasi tentang operasi akan terbuka.
Klik setiap baris untuk memperluas detail informasi error.
Masalah: Saat menggunakan Konsol Google Cloud, saya tidak melihat kolom tertentu ditampilkan.
Solusi: Untuk melihat kolom tertentu yang ditampilkan di konsol Google Cloud, klik ikon Column display options (
), lalu pilih kolom yang ingin ditampilkan.Folder simulasi dan folder terkelola
Masalah: Saya menghapus beberapa objek di bucket, dan sekarang folder tempat objek tersebut disimpan tidak muncul di Konsol Google Cloud.
Solusi: Meskipun Konsol Google Cloud menampilkan konten bucket Anda seolah-olah ada struktur direktori, folder sebenarnya tidak benar-benar ada di Cloud Storage. Karena itu, saat Anda menghapus semua objek dengan awalan umum dari bucket, ikon folder yang merepresentasikan grup objek tersebut tidak muncul kembali di Konsol Google Cloud.
Masalah: Saya tidak dapat membuat folder terkelola.
Solusi: Untuk membuat folder terkelola, pastikan persyaratan berikut terpenuhi:
Anda memiliki peran IAM yang berisi izin
storage.managedfolders.create
, seperti peran Storage Object Admin (roles/storage.objectAdmin
). Untuk mengetahui petunjuk tentang cara memberikan peran, lihat Menggunakan izin IAM.Akses level bucket yang seragam diaktifkan di bucket tempat Anda ingin membuat folder terkelola.
Tidak ada IAM Conditions di bucket atau project yang menggunakan jenis resource bucket (
storage.googleapis.com/Bucket
) atau jenis resource objek (storage.googleapis.com/Object
). Jika ada bucket dalam project yang memiliki IAM Conditions yang menggunakan salah satu jenis resource ini, folder terkelola tidak dapat dibuat di salah satu bucket dalam project tersebut, meskipun kondisi tersebut dihapus nanti.
Masalah: Saya tidak dapat menonaktifkan akses level bucket yang seragam karena ada folder yang dikelola di bucket saya.
Solusi: Akses level bucket seragam tidak dapat dinonaktifkan jika ada folder terkelola di bucket. Untuk menonaktifkan akses level bucket yang seragam, Anda harus menghapus semua folder terkelola di bucket terlebih dahulu.
Latensi
Berikut adalah masalah latensi umum yang mungkin Anda temui. Selain itu, Dasbor Google Cloud Service Health memberikan informasi tentang insiden yang memengaruhi layanan Google Cloud seperti Cloud Storage.
Latensi upload atau download
Masalah: Saya melihat adanya peningkatan latensi saat mengupload atau mendownload.
Solusi: Pertimbangkan penyebab umum latensi upload dan download berikut:
Batasan CPU atau memori: Sistem operasi lingkungan yang terpengaruh harus memiliki alat yang dapat mengukur konsumsi resource lokal seperti penggunaan CPU dan memori.
Batasan IO disk: Dampak performa mungkin disebabkan oleh IO disk lokal.
Latensi library klien atau CLI
Masalah: Saya melihat adanya peningkatan latensi saat mengakses Cloud Storage dengan Google Cloud CLI atau salah satu library klien.
Solusi: CLI gcloud dan library klien
secara otomatis mencoba lagi permintaan jika diperlukan, dan perilaku ini
dapat secara efektif meningkatkan latensi seperti yang terlihat dari pengguna akhir. Gunakan metrik Cloud Monitoring storage.googleapis.com/api/request_count
untuk melihat apakah Cloud Storage secara konsisten menyajikan kode respons yang dapat dicoba lagi, seperti 429
atau 5xx
.
Server proxy
Masalah: Saya terhubung melalui server proxy. Apa yang harus saya lakukan?
Solusi: Untuk mengakses Cloud Storage melalui server proxy, Anda harus mengizinkan akses ke domain berikut:
accounts.google.com
untuk membuat token autentikasi OAuth2oauth2.googleapis.com
untuk melakukan pertukaran token OAuth2*.googleapis.com
untuk permintaan penyimpanan
Jika server proxy atau kebijakan keamanan tidak mendukung daftar izin menurut domain, tetapi hanya mendukung daftar izin menurut pemblokiran jaringan IP, sebaiknya konfigurasikan server proxy untuk semua rentang alamat IP Google. Anda dapat menemukan rentang alamat dengan membuat kueri data WHOIS di ARIN. Sebagai praktik terbaik, Anda harus meninjau setelan proxy secara berkala untuk memastikan setelan tersebut cocok dengan alamat IP Google.
Sebaiknya jangan mengonfigurasi proxy dengan alamat IP individual yang Anda
dapatkan dari pencarian satu kali oauth2.googleapis.com
dan
storage.googleapis.com
. Karena layanan Google diekspos menggunakan nama DNS
yang memetakan ke sejumlah besar alamat IP yang dapat berubah seiring waktu,
mengonfigurasi proxy berdasarkan pencarian satu kali dapat menyebabkan kegagalan untuk
terhubung ke Cloud Storage.
Jika permintaan dirutekan melalui server proxy, sebaiknya
hubungi administrator jaringan untuk memastikan bahwa header Authorization
yang berisi kredensial Anda tidak dihapus oleh proxy. Tanpa
header Authorization
, permintaan akan ditolak dan Anda akan mendapatkan
error MissingSecurityHeader
.
Langkah selanjutnya
- Temukan jawaban atas pertanyaan lainnya di FAQ Cloud Storage.
- Pelajari opsi dukungan Anda.
- Pelajari cara Error Reporting dapat membantu Anda mengidentifikasi dan memahami error Cloud Storage.