Ich versuche, Dateien zwischen S3-Buckets in Unity zu übertragen und kryptische Fehler zu finden, auf denen ich keine Dokumentation finden kann. Beide Buckets gehören demselben Konto an.Übertragen von Dateien zwischen Amazon S3-Buckets in Unity
Immer wenn ich ein Asset erstelle, lade ich es auf S3-Server im Dev Bucket hoch, was großartig funktioniert. Wenn ich bereit bin, Assets zu aktivieren, möchte ich eine Liste der Assets durchgehen, die im Prod Bucket fehlen, und sie vom Dev Bucket übertragen. Aus meiner Forschung ist IAmazonS3. CopyObjectAsync()
die Funktion, die diese Aufgabe ausführen soll. Die IAmazonS3.CopyObject()
function ist nicht in Amazon Unity SDK verfügbar.
Hier ist der Code, den ich anrufen, während das Objekt zu kopieren versuchen:
public void TestCopy()
{
var request = new CopyObjectRequest()
{
SourceBucket = mLoginData.DevBucket,
SourceKey = "myPic.jpg",
DestinationBucket = mLoginData.ProdBucket,
DestinationKey = "myPic.jpg"
};
AWSConfigs.HttpClient = AWSConfigs.HttpClientOption.UnityWebRequest;
Client.CopyObjectAsync(request,(responseObj) =>
{
if (responseObj.Exception == null)
{
ResultText.text += "Copied Object";
}
else
{
ResultText.text += "Got Exception: \n" + responseObj.Exception.ToString();
}
});
}
Dies führt zu einem "Verschoben" Fehlercode, der nicht in den Amazon Error Code documentation erwähnt wird:
Got Exception:
Amazon.S3.AmazonS3Exception: Error making request with Error Code Moved and Http Status Code Moved. No further error information was returned by the service. Response Body: Encountered invalid redirect (missing Location header?) ---> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
at Amazon.Runtime.Internal.UnityRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0
at Amazon.Runtime.Internal.HttpHandler`1[System.String].GetResponseCallbackHelper (System.Object state) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleException (IExecutionContext executionContext, Amazon.Runtime.Internal.HttpErrorResponseException exception) [0x00000] in <filename unknown>:0
at Amazon.Runtime.Internal.ExceptionHandler`1[T].Handle (IExecutionContext executionContext, System.Exception exception) [0x00000] in <filename unknown>:0
at Amazon.Runtime.Internal.ErrorHandler.ProcessException (IExecutionContext executionContext, System.Exception exception) [0x00000] in <filename unknown>:0
at Amazon.Runtime.Internal.ErrorHandler.InvokeAsyncCallback (IAsyncExecutionContext executionContext) [0x00000] in <filename unknown>:0
Ich weiß, dass ich in der Lage bin, Buckets anzuzeigen/aufzulisten, Dateien in beiden Buckets hochzuladen/aufzulisten/zu löschen usw. Es ist wichtig, dass die Lösung vom Unity Editor ausgeführt wird.
Sind diese neuen Eimer? –
Nein, dies sind Buckets, die bereits eine Menge Dinge in ihnen haben, die in den letzten 4 Monaten oder so verwendet wurden. –