Vì vậy, tôi đã cố gắng tải lên tệp âm thanh/video từ ứng dụng iOS lên Google Cloud Server. Tôi muốn người dùng không phải đăng nhập vào tài khoản google của họ trước khi tải lên. Hiện tại, giải pháp làm việc của tôi là làm cho thùng trên máy chủ "mở", về cơ bản là có sẵn cho mọi người trên Internet để đọc/ghi nhóm. tôi đặt khóa API để đối tượng GTLServiceStorage tôi trên iOS:Tải lên Google Cloud Storage bằng tài khoản dịch vụ từ ứng dụng iOS
_serviceStorage.additionalHTTPHeaders = HTTP_HEADERS;
_serviceStorage.APIKey = kCloudBackendAPIKey;
Bằng cách này, người dùng từ bên trong ứng dụng sẽ có thể tải lên mà không đăng nhập.
Bây giờ, tôi muốn thùng ở chế độ riêng tư nên chỉ người dùng từ ứng dụng được ủy quyền mới có thể truy cập.
Trên Android, Tôi có thể làm điều đó bằng chứng chỉ tôi tạo từ máy chủ và triển khai nó vào tệp dự án Android thông qua ví dụ từ trang Tài liệu của Google. (Sử dụng id tài khoản dịch vụ & tệp PKCS12). Mã trên Android để thiết lập các chứng chỉ là như thế này:
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(getResources().openRawResource(R.raw.secret), MY_PASSWD.toCharArray());
PrivateKey key = (PrivateKey) keystore.getKey("privatekey", MY_PASSWD.toCharArray());
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_ID)
.setServiceAccountScopes(scopes)
.setServiceAccountPrivateKey(key)
.build();
storage = new Storage.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(APP_NAME).build();
// --- continue upload using storage
Tuy nhiên, bây giờ tôi có thể dường như không tìm thấy một cách để thực hiện các cơ chế tương tự vào ứng dụng iOS của tôi. Có cách nào tôi có thể sử dụng id tài khoản dịch vụ google để tải tệp lên trong ứng dụng iOS để người dùng không phải đăng nhập vào tài khoản goolge của họ trước tiên không?
Hi @adipurnama, bạn đã tìm thấy giải pháp cho vấn đề này chưa? Tôi có cùng một vấn đề. –
adipurnama, cuGoku> Bạn có bao gồm tệp khóa cá nhân (.p12) và mật khẩu bên trong Ứng dụng dành cho thiết bị di động Android của bạn không? Nếu có, điều đó có an toàn không? – Jasper
giải pháp nào? thanks ... –