1. Einführung
Die Cloud ist kein neues Konzept. Selbst wenn Sie mich bitten, es klar zu erklären, kann ich es vorerst nicht als Cloud bezeichnen. Es gibt immer noch viele inländische Cloud-Dienstanbieter, und es gibt zwei Hauptkategorien: Die eine ist ein Host-ähnlicher Cloud-Anbieter, wie z. B. Wanwang, und die andere ist das Anwendungshosting. SAE. Im Vergleich zu Weltraumanbietern wie Alibaba Cloud ist das Einstiegsniveau für Anwendungshosting-Plattformen niedriger und bietet den meisten Programmierern mit Schwierigkeiten eine gute Testplattform.
Das Software-Upgrade-Programm, für das ich kürzlich verantwortlich war, umfasste mehrere Plattformen, mehrere Dateien und mehrere Versionen. Wenn ich meinen eigenen Dateiserver bauen würde, würde die Bandbreite definitiv nicht den Geschäftsanforderungen entsprechen, also begann ich, den Baidu Cloud Storage BCS-Dienst zu nutzen Es funktioniert jetzt normal, aber die gelegentlichen Krämpfe haben mich dazu gezwungen, mich an Alibaba Cloud Storage zu wenden, schließlich müssen kommerzielle Dinge immer noch kommerzialisiert und professionell gemacht werden. Zumindest wenn es ein Problem gibt, kann der Kundenservice dies nicht tun gefunden werden. Aber als technische Nutzung sprechen wir über die Nutzung von Cloud-Speicher.
2. Nutzungsschritte
1. Registrieren Sie ein Baidu-Konto
Das muss ich nicht sagen.
2. Einen Entwickler angerufen
Geben Sie „Baidu Open Cloud Platform“ ein (ich kenne Baidu selbst nicht). Nach der Anmeldung werden Sie aufgefordert, sich als Entwickler zu registrieren.
3. Erstellen Sie eine Anwendung
Gehen Sie zur Baidu Open Cloud-Homepage und erstellen Sie eine BAE-Anwendungs-Engine. Wählen Sie beim Erstellen nicht die Lösung: Verwenden Sie BAE, es sei denn, Sie haben noch eine Website, an der Sie festhalten können. Es ist in Ordnung, es zu versuchen. Wählen Sie dann nach der Eingabe den Cloud-Speicher aus und erstellen Sie einen Bucket (wird später erklärt).
4. Laden Sie das SDK herunter
5. Testcode
3. Schwierigkeiten und Aufmerksamkeiten
1. Das Lesen eines SDK ohne API oder ohne detaillierte API erfordert viel Energie und ist nicht einmal so bequem wie das Lesen der Blogs anderer Leute.
2. Verständnis von Konzepten
Bucket: Nach dem Erstellen einer Anwendung wird ein Bucket erstellt. Stellen Sie sich das wie einen Laufwerksbuchstaben unter Windows vor, in dem Sie auch andere Buckets ablegen können erstellt werden. Es ist eigentlich ungenau zu sagen, dass Bucket ein Laufwerksbuchstabe ist, weil es eher dem Stammverzeichnis unter Linux ähnelt. Wenn Sie Ihre Datei lesen, können Sie nicht sagen, dass meine Datei 1.txt ist. Stattdessen: /1.txt. Im Code deklariert.
Objekt: Ein Objekt stellt eine Datei dar. Es besteht aus vielen Metainformationen und Dateiblöcken (siehe Dateisystem). Die Metainformationen umfassen Dateinamen, Dateigröße, Zeit usw. Denken Sie vor der Verwendung von Object unbedingt an „/“.
3. Laden Sie die Authentifizierung herunter
Die Verwendung von HTTP-Anfragen zum Herunterladen privater Dateien erfordert Authentifizierungsparameter. Wenn Sie die offizielle API lesen, wird nur der Verschlüsselungsprozess der Autorisierung erläutert, es gibt jedoch keine Java-Version. Ich werde auch die Java-Implementierung nicht näher erläutern. Da es im SDK implementiert wurde, gibt es nur ein kleines Problem. Das „/“ zwischen dem Bucket und dem Dateinamen der vom SDK generierten Download-Adresse ist codiert, was dazu führt, dass der Download bei einigen Downloadern fehlschlägt. Beispielsweise kann mobiles QQ nicht heruntergeladen werden. Muss noch einmal bearbeitet werden.
4. API-Schlüssel und Geheimschlüssel
Greifen Sie hierüber auf die App zu.
4. Detaillierte Umsetzung
1. Leitfadenpaket
2. Teil des Codes
Genehmigung:
Kopieren Sie den Codecode wie folgt:
öffentliche Klasse BCSHelper {
private String host = "";//Hostname: bcs.duapp.com
private String accessKey = ""; //Kann in der von Ihnen erstellten Anwendung angezeigt werden
privater String SecretKey = "";
private String Bucket = "";//Der Name des von Ihnen erstellten Buckets
private BaiduBCS baiduBCS = null;
public BCSHelper() {
this.host = Configuration.getHost();
this.accessKey = Configuration.getAccessKey();
this.secretKey = Configuration.getSecretKey();
this.bucket = Configuration.getBucket();
BCSCredentials credentials = new BCSCredentials(accessKey, SecretKey);
baiduBCS = new BaiduBCS(credentials, host);
baiduBCS.setDefaultEncoding("UTF-8"); // Standard UTF-8
}
Dateien hochladen und löschen:
Kopieren Sie den Codecode wie folgt:
/**
* Laden Sie Dateien in BCS hoch
*
* @return boolean true zeigt an, dass der Upload erfolgreich war
* @param-Datei
* Hochzuladende Dateien
*
*******/
public boolean putObject(File file) {
boolesches Ergebnis = wahr;
versuchen {
//Muss mit „/“ beginnen
PutObjectRequest request = new PutObjectRequest(bucket, "/" + file.getName(), file);
//Metainformationen des Objekts festlegen
ObjectMetadata metadata = new ObjectMetadata();
request.setMetadata(metadata);
baiduBCS.putObject(request);
LoggerService.addLoggerByOperate("BCS: Dateien in BCS hochladen:"+file.getName());
} Catch (Ausnahme e) {
Ergebnis = falsch;
LoggerService.addLoggerByError(e.getMessage());
e.printStackTrace();
}
Ergebnis zurückgeben;
}
/**
* Dateien auf BCS nach Objektnamen löschen
*
* @param-Objekt
* Objektname
* @return boolean true Löschung erfolgreich
******/
public boolean deleteObject(String object) {
boolesches Ergebnis = wahr;
versuchen {
if (existObject(object)) {
baiduBCS.deleteObject(bucket, „/“ + object);
LoggerService.addLoggerByOperate("BCS: Dateien auf BCS löschen:"+object);
}
} Catch (Ausnahme e) {
Ergebnis = falsch;
e.printStackTrace();
LoggerService.addLoggerByError(e.getMessage());
}
Ergebnis zurückgeben;
}
Bestimmen Sie, ob das Objekt vorhanden ist:
Kopieren Sie den Codecode wie folgt:
/**
* Stellen Sie fest, ob die Datei in BCS vorhanden ist
*
* @param-Objekt
* Objektname
* @return boolean true zeigt Existenz an
* ***/
public boolean existObject(String object) {
boolesches Ergebnis = false;
versuchen {
result = baiduBCS.doesObjectExist(bucket, "/" + object);
} Catch (Ausnahme e) {
e.printStackTrace();
}
Ergebnis zurückgeben;
}
Generieren Sie eine selbst geschriebene Download-Adresse:
Kopieren Sie den Codecode wie folgt:
/**
* Holen Sie sich die Download-Adresse von Object
*
* @param-Objekt
* Objektname
* @return String Gibt die heruntergeladene URL zurück
*******/
public String getUrl(String object) {
// Inhalte, die verschlüsselt werden müssen
String data = "MBO" + "/n" + "Method=GET" + "/n" + "Bucket=" + Bucket + "/n" + "Object=/" + object + "/n";
//Verschlüsseltes Ergebnis
String hmacsha1 = getHmacSHA1(secretKey, data);
// Vorzeichenparameter erstellen
String sign = "MBO:" + accessKey + :: + hmacsha1;
// URL
StringBuilder builder = new StringBuilder();
builder.append("http://");
builder.append(host);
builder.append("/");
builder.append(bucket);
builder.append("/");
builder.append(object);
builder.append("?sign=");
builder.append(sign);
return builder.toString();
}
// Signaturverschlüsselung
privater String getHmacSHA1(String SecretKey, String-Daten) {
String result = "";
versuchen {
SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(data.getBytes());
Base64 base64 = new Base64();
@SuppressWarnings("static-access")
byte[] enbytes = base64.encodeBase64Chunked(rawHmac);
result = new String(enbytes, "utf-8");
} Catch (Ausnahme e) {
e.printStackTrace();
}
Ergebnis zurückgeben;
}
Geänderte SDK-generierte Adresse:
Kopieren Sie den Codecode wie folgt:
* Holen Sie sich die Download-Adresse von Object
*
* @param-Objekt
* Objektname
* @return String Gibt die heruntergeladene URL zurück
*******/
public String getUrl(String object) {
String result = "";
GenerateUrlRequest genericUrlRequest = new GenerateUrlRequest(HttpMethodName.GET, Bucket, "/" + object);
genericUrlRequest.setBcsSignCondition(new BCSSignCondition());
result = baiduBCS.generateUrl(generateUrlRequest);
result=result.replaceFirst("%2F", "/");
Ergebnis zurückgeben;
}
Es gibt auch viele Testcodes, die vom Beamten bereitgestellt wurden, und ich habe sie auch bereitgestellt. Laden Sie sie herunter, studieren Sie sie selbst und kapseln Sie sie, um sie in tatsächlichen Projekten zu verwenden Ich hoffe, Sie können mir sagen, was Sie sehen, schließlich ist er auch ein Neuling.