Je suis nouveau sur S3 et je dois l'utiliser pour stocker des images. J'ai trouvé une version demi-douzaine d'un s2wrapper pour cf, mais il semble que le seul jeu de pour v4 est un modifié par LeighUtilisation de la version de Leigh de S3Wrapper.cfc Impossible de passer Init
https://gist.github.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29
droppée dans le répertoire com et créé une page « test » qui contient le code suivant:
s3 = createObject('component','com.S3Wrapper').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);
donc j'ai changé la ligne 37 de
variables.Sv4Util = createObject('component', 'Sv4').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);
à
variables.Sv4Util = createObject('component', 'Sv4Util').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);
Je me sens comme passer par le code Leigh et commencer à changer les choses est une mauvaise idée car je rôdait ici pour l'année un savoir Le code de Leigh est solide.
Est-ce que quelqu'un sait s'il y a des exemples sur comment l'utiliser n'importe où? Si ce n'est pas ce que je fais mal. Si cela fait la différence, j'utilise Lucee 5 et pas le moteur CF d'Adobe.
MISE À JOUR:
je suivais les instructions de Leigh et l'erreur est maintenant disparu. Je suis addedsome plus de code à ma page de test qui ressemble maintenant à ceci:
<cfscript>
s3 = createObject('component','com.S3v4').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);
bucket = "imgbkt.domain.com";
obj = "fake.ping";
region = "s3-us-west-1"
test = s3.getObject(bucket,obj,region);
writeDump(test);
test2 = s3.getObjectLink(bucket,obj,region);
writeDump(test2);
writeDump(s3);
</cfscript>
Peu importe ce que je mets dans seau, obj ou de la région que je reçois:
JIC Je suis allé à AWS et obtenir nouvelles clés:
Leigh si vous êtes toujours là ou quelqu'un qui a utilisé l'un des s3Wrappers des suggestions ou des conseils?
MISE À JOUR # 2: Même après l'aide d'Alex, je ne suis pas capable de faire fonctionner cela. Le lien que je reçois de getObjectLink n'est pas valide et getObject ne télécharge jamais un objet. Je pensais que je voudrais essayer la méthode PutObject
test3 = s3.putObject(bucketName=bucket,regionName=region,keyName="favicon.ico");
writeDump(test3);
pour voir s'il y a des informations supplémentaires, j'ai reçu ceci:
J'ai trouvé cet article https://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html mais il est assez vieux et depuis S3 suggère spécifiquement l'utilisation points dans les noms de seau je ne pense pas que ce soit plus pertinent. Il y a évidemment quelque chose que je fais de mal mais j'ai passé des heures à essayer de résoudre cela et je n'arrive pas à comprendre ce que cela pourrait être.
dénomination Bad de ma part (pour différencier la version signature 4) Il a besoin de deux composants:.. l'emballage S3 et utilitaire SV4 A) Enregistrer [le composant S3] (https://gist.gi thubusercontent.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29/raw/da1caf605370705a7d258fcddbcb79994af60162/S3Wrapper.cfc) comme 'S3v4.cfc' et B) [L'utilitaire Signature 4] (https://gist.github.com/Leigh-/a2798584b79fd9072605a4cc7ff60df4#file- sv4util-cfc) comme 'Sv4.cfc' (les deux dans votre répertoire' com'). Puis ajoutez 'com' au chemin CFC sur la ligne 38:' variables.Sv4Util = createObject ('component', 'com.Sv4') .init (...); ' – Leigh
.. (suite) Merci pour le la tête haute! Je vais arranger les choses (donc c'est plus clair) demain. – Leigh
Quel est exactement le problème? Quels sont les résultats attendus pour quelle fonction appelle? – Alex