Jetzt BlueMix hat eine S3-Endpunkt-Fähigkeit. Sie können zum Beispiel curl oder eine andere Sprache verwenden, hier ist ein boto3, der ein Objekt hochlädt, es veröffentlicht und einige Metadaten: (Die Funktion verwendet eine json-Datei, in der Sie die Anmeldeinformationen speichern und sie verwendet 3 Variablen currentdirpath, ImagesToS3, Imagename)
def UploadImageDansBucket (currentdirpath,ImagesToS3,ImageName) :
currentdirpath = 'path/to/your/dir/current'
ImagesToS3 = ' /path/of/your/object/'
ImageName = 'Objectname'
with open("credentials.json", 'r') as f:
data = json.loads(f.read())
bucket_target = data["aws"]["targetBucket"]
print ('Open Connection to the bucket in the cloud..........')
s3ressource = boto3.resource(
service_name='s3',
endpoint_url= data["aws"]["hostEndPoint"],
aws_access_key_id= data["aws"]["idKey"],
aws_secret_access_key=data["aws"]["secretKey"],
use_ssl=True,
)
s3ressource.meta.client.meta.events.unregister('before-sign.s3', fix_s3_host)
s3ressource.Object(bucket_target, 'hello.txt').put(Body=b"I'm a test file")
s3ressource.Object(bucket_target, 'bin.txt').put(Body=b"abcdef"*10000)
fn = "%s%s" % (ImagesToS3,ImageName)
data = open(fn, 'rb')
#s3ressource.Bucket(bucket_target).put_object(Key=fn, Body=data)
now = datetime.datetime.now() # on recupere la date actuelle
timestamp = time.mktime(now.timetuple()) # on effectue la convertion
timestampstr = str (timestamp)
s3ressource.Bucket(bucket_target).upload_file(fn,ImageName, ExtraArgs={ "ACL": "public-read", "Metadata": {"METADATA1": "a" ,"METADATA2": "b","METADATA3": "c", "timestamp": timestampstr },},)
Wie erhalte ich X-Auth-Token für einen kostenlosen Plan – briantaurostack7
'Sie können geben Sie den folgenden PUT request' ...' curl -X GET': in der globalen App verwendet ... also ist es "GET" oder "PUT"? – Pang
Um das Authentifizierungs-Token zu erhalten, gibt es einen zusätzlichen Schritt, bei dem der Benutzername und das Passwort für ein Token ausgetauscht werden. Die Anweisungen hier funktionieren gut, aber ich musste curl -v verwenden, um das Token von den Antwortheadern zu erhalten: https://console.bluemix.net/docs/services/ObjectStorage/os_authenticate.html –